5 ms·
I think I just fell in love with Erlang.
by djfm 12y ago
I think I just fell in love with Erlang.
- kibwen 12y agoErlang is a wonderfully pragmatic and mature language, it doesn't get nearly the hype it deserves.
- amelius 12y agoI have one question. It is often said that in Erlang, one can have a large number of threads. However, doesn't that cause problems with the memory hierarchy (cache)?
- jlouis 12y agoErlang runs about K threads where K is the number of cores towards the OS. All processes are "logical" in the same memory space and usually they happen to be pretty small with a heap of a few kilobytes. As long as this is the case, then even swapping among a number of threads, say 100, will not take you out of the 2nd level cache. If you have a large number of processes, then it is a problem. And do note that Erlang programs have way more pointer-redirections than a typical array-like approach which is common in Go and other imperative languages. That is the memory pressure by default will be higher than what you can achieve in languages with static types. It tends to be a problem for tight computational kernels, and Erlang programmers usually fall down to C if they prove to become bottlenecks. I have an older post here describing the schedulers: http://jlouisramblings.blogspot.dk/2013/01/how-erlang-does-scheduling.html http://jlouisramblings.blogspot.dk/2013/01/how-erlang-does-s... which is still reasonably up-to-date to give the overview.
- rdtsc 12y agoYou can have hundreds of thousands of processes easily in Erlang. An Erlang process is very lightweight (only a few KB of memory!), yet, just like a real OS process it doesn't share its heap (memory) with the other ones. So if process 100000 crashes it won't affect the other 99999 left around.
- moita 12y agoIt's let down by being more of a ”throw it over the wall” project than an open and transparent one. (There is no public bug tracker, road map, etc.)
- rdtsc 12y agoWhat do you mean throw it over the wall? It has been solid and running large, reliable, industrial system for many years. What do you want Ericsson to bake a cake for you? It is open source (https://github.com/erlang/otp https://github.com/erlang/otp), some have forked it and updated as needed (for example WhatsApp). There is a bug mailing list (http://erlang.org/pipermail/erlang-bugs/ http://erlang.org/pipermail/erlang-bugs/), there are regular bug fixes, pull requests, frequent releases. New features added (like maps).
- moita 12y ago> What do you mean throw it over the wall? It's more closed than it is open. > It has been solid and running large, reliable, industrial system for many years. Did I say otherwise? > What do you want Ericsson to bake a cake for you? Yes. > It is open source (https://github.com/erlang/otp https://github.com/erlang/otp), some have forked it and updated as needed (for example WhatsApp). I know it is open source. I have contributed to it. > There is a bug mailing list (http://erlang.org/pipermail/erlang-bugs/ http://erlang.org/pipermail/erlang-bugs/), Presumably you bring this up because I pointed out there is not a public bug tracker. A mailing list is not a substitue for a bug tracker. > there are regular bug fixes, pull requests, frequent releases. New features added (like maps). Yes, and? Where do I go to see the status of, I don't know, native processes? (Assuming that's still being worked on.) How about a list of bugs in the ssh or ssl apps? (This is not an esoteric thing: http://erlang.org/pipermail/erlang-questions/2015-March/083708.html http://erlang.org/pipermail/erlang-questions/2015-March/0837...) Lastly, I'd ask you to consider what your response has done to improve and grow the Erlang community.
- rdtsc 12y ago> Did I say otherwise? Yes you did, you said "It's let me down". I just assumed t was something more serious like major design flaw, or periodic segfaults in the runtime, and not "bugs go in the mailing list" vs "no Github issues". > > What do you want Ericsson to bake a cake for you? > Yes. And they will. Throw in a couple of millions their way in there and they'll take a few engineers off from building their product and you might get a delicious cake. > > There is a bug mailing list (http://erlang.org/pipermail/erlang-bugs/ http://erlang.org/pipermail/erlang-bugs/), > Presumably you bring this up because I pointed out there is not a public bug tracker. A mailing list is not a substitue for a bug tracker. It is not but they are the ones who pay their developers to work on this and they have a bug mailing list. You can still issue pull requests if you want. There are plenty here: https://github.com/erlang/otp/pulls https://github.com/erlang/otp/pulls File the bug, submit a patch and discuss there. Some pull requests have 20+ comments. > there are regular bug fixes, pull requests, frequent releases. New features added (like maps). Yes, and? And it is not exactly a "throw over the wall. It is like getting a free car from someone but complaining that the seats are the wrong color.And the car has now failed you. > Where do I go to see the status of, I don't know, native processes? Ask on the mailing list. Comment on the pull request or go on #erlang on IRC. > Lastly, I'd ask you to consider what your response has done to improve and grow the Erlang community. But what has your response done to hurt it? Here someone shared a cool project, and someone else commented how cool it is. And you are complaining that it is a "throw over the all" and it is a failure because they didn't set up Github issues properly. If you are going to spread fud then, well, be prepared to get nasty comments back.