Live data from Hacker News

Ask HN: Why isn't Erlang more popular?

news.ycombinator.com

201–210 of 244 posts

Re: Ask HN: Why isn't Erlang more popular?

#201

Earlier quoted context omitted.

> I'm pretty sure Go is going to eat Erlang. I wouldn't be surprised by this. Go's concurrency pattern is fantastic, but to match what Erlang does it needs to be easily extended beyond the running process. Can channels connect multiple "nodes" yet? That is, two running go programs, can they communicate via channels or do they have to use some other IPC mechanism? Across a network? That universal communication structu…

Erlang scheduler time share each processes. So if you have an infinite forloop, it while stop for several ms for other processes to run. Preemptive scheduler, I doubt Go have this, then again Go doesn't have a VM/OS system.

go 1.2 has preemptive scheduling http://golang.org/doc/go1.2#preemption

Re: Ask HN: Why isn't Erlang more popular?

#202
post #87

Earlier quoted context omitted.

You misunderstand his point. He isn't saying that Erlang is a toy language, he is saying that documentation makes Erlang look like a toy language. i.e. showing him how his thought was wrong doesn't change the fact that many other people will probably make a similar thoughts.

No, I understood the OP's point, I just decided to point them towards a better resource in the case that they do want to learn more about it at some point. I agree that the Erlang site is utterly dreadful.

Fair enough, just misunderstood your tone, my apologies.

Re: Ask HN: Why isn't Erlang more popular?

#203
post #170

Earlier quoted context omitted.

> I'm pretty sure Go is going to eat Erlang. I wouldn't be surprised by this. Go's concurrency pattern is fantastic, but to match what Erlang does it needs to be easily extended beyond the running process. Can channels connect multiple "nodes" yet? That is, two running go programs, can they communicate via channels or do they have to use some other IPC mechanism? Across a network? That universal communication structu…

> I wouldn't be surprised by this. Go's concurrency pattern is fantastic Only for those not versed in java.util.concurrent, TPL, PPL, TBB, Cilk Plus.

java.util.concurrent doesn't have a convenient mechanism for "selecting" across available channels/queues without blocking. This is a key feature of erlang and go. There are ways to simulate it, but it's not the same thing. (I'd love to be wrong about this).

Re: Ask HN: Why isn't Erlang more popular?

#204

Tons of people mention Elixir in threads like these. Is anybody actually using it in production, or is it just something that Rubyists use as a foil to criticize Erlang's syntax? I feel the algol-ization of (functional, prototypical)javascript is a confusing mess and a weakness that makes js harder to use. Making Erlang look object-oriented just seems awkward. Syntax: comma means AND, semicolon means OR, period means…

I've started using Elixir on my projects over the last few months, and I absolutely love it. It's not just the cleaner syntax, the language adds features on top of what Erlang already provides, and provides easy interop between the two languages, the documentation is better, the build tool (mix) is great, and I think the community is awesome. It's a new language, and it won't be 1.0 until later this year, but if you'…

The erlang syntax is actually much simpler than Elixir's which both contains more syntax and alternate ways of writing things.

Re: Ask HN: Why isn't Erlang more popular?

#205

Earlier quoted context omitted.

> You're looking at something that is really well-known. What does the website of Google convey? The Google comparison is comical. You are wildly over-estimating how well known Erlang is, even in the dev community. > Do you really decide whether you'd learn a language by looking at its website? Most devs learn a new language when it helps them solve a problem. Anyone who needs to solve the problems that Erlang addres…

The last thing Erlang should put on its website to get new uses is Erlang source. Certainly the most off putting part of it.

That is a great idea, assuming the new users of Erlang will continue to be able avoiding Erlang code

Re: Ask HN: Why isn't Erlang more popular?

#206
post #187

I am not going to enter into a syntax argument I have already given my views on that here http://rvirding.blogspot.se/2014/01/erlang-syntax-again-and-... . My main point is that the syntax is simple and that it fits the semantics much better than anything based on an Algol like syntax would, even one which uses ';' in the "normal" way. And one reason it works is because it has built-in those features for building fau…

> And one reason it works is because it has built-in those features for building fault-tolerant systems which, for example, Go lacks. Very few people really need that though, so from a marketing point of view, to sell that as the primary feature is to consign Erlang to a fairly small niche.

Actually if you really start asking a lot of people do actually want this but it is often something they don't explicitly mention. It tends to be one of those "of course it must ..." things.

Re: Ask HN: Why isn't Erlang more popular?

#207

Earlier quoted context omitted.

> concurrent connections on a single FreeBSD box Do you have a source for that? I'd love to read more

Whatapp old video talk and presentation on it. You can search it on HN. Um... it's not easy to get 2-3million they did it but they also profile the crap out of it. I think they easily got 1 million out of the box though.

Can I get anything like this with a more common tech stack? I.e. Node JS, Java + NIO, Python + Twisted (or something else)? 10K, I get. But 1 million+ is freakin awesome in my books.

Re: Ask HN: Why isn't Erlang more popular?

#208

Earlier quoted context omitted.

Someone implemented a DSL lua on Erlang VM already.

That'll be Robert Virding (see comment below) lol

Yes, that's me. Where is the "comment below"? Couldn't find it.

I just want to point out that I don't dislike Lua at all, it is a small neat language with some very nice features. It just isn't something on which I would base a parallel system as it has too much sharing and other things which don't go parallel easily. Using it as plugin to erlang for doing "business" logic works quite well, either by communicating with a Lua system or doing like Luerl and implementing it Erlang. This means that Luerl meshes completely with Erlang.

Re: Ask HN: Why isn't Erlang more popular?

#209
post #54

I'm seriously thinking about Erlang now. What raised my eyebrows was "2-3 million concurrent connections on a single FreeBSD box"[this is what WhatsApp achieved]. Async network IO can be done with library support in Python, natively in nodeJS, etc. I wonder if one can push those stacks to this level.

> concurrent connections on a single FreeBSD box Do you have a source for that? I'd love to read more

[deleted]

Re: Ask HN: Why isn't Erlang more popular?

#210
Shared state is great as long as you control it.

Databases are a giant blob of shared state, albeit a carefully-managed one. People complain about them all the time, but databases completely take over in huge areas of the application development landscape. There's a reason for that -- consistency is a very powerful simplifying assumption (giant understatement). Getting consistency in erlang may be possible, and of course you can still use a database from erlang, but the philosophy doesn't quite line up.

Databases already offer isolation between transactions. And they naturally work with immutable structures similar to functional programming.

For most applications out there, HA means replicating a database, and when it goes down (which is actually quite rare), you lose a little time doing a failover.

Hot code loading means uploading a PHP file with a new extension and "mv"ing it over the old one. Need schema changes? PostgreSQL offers transactional DDL (e.g. ALTER TABLE).

Any error in the database usually just causes that one transaction for that one request to fail. Any error in the application usually just crashes that one process serving that one request.

Philosophically, using erlang is trading consistency for availability. Given that it's easy to get good availability using normal applications connected to a database, using erlang is somewhat of a niche.

I have spent some effort learning erlang, and I really like it in many ways. I bought the new book and I like it so far. I have no problem with the syntax and I find it enjoyable to write in (though I haven't written any large programs). There are certain projects where I think erlang would be a great choice, like management and control of a cluster system. Obviously it works for telco-like things, too, but I've never developed anything like that.

Post reply on HN