Live data from Hacker News

Ask HN: Why isn't Erlang more popular?

news.ycombinator.com

151–160 of 244 posts

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

#151
I have tried it and (try to) use it when appropriate. I am fairly comfortable with it and my only disappointment is that I do not get to use it often.

The ability to solve a problem in a particular programming language is often dependent on the ability to express the problem in the constructs provided by the language. A very good example is the problem of concurrency. Doing something concurrently in a primarily procedural/OOP language often seems hacky and it is something that does not feel natural. The actor model that erlang implements is a very powerful model for certain class of problems and concurrency is one of them. Erlang the language, minus the OTP, is extremely small and once you get over the culture shock experienced when it comes to syntax, things will seem pretty easy. OTP isn't magic. Its years and years of erlang experience packaged into one neat library, solving commons problems, so that you can concentrate on your work instead of reinventing the wheel.

Reading Joe Armstrong thesis 'Making reliable distributed systems in the presence of software errors'[1] is highly recommended if you want to understand why things are the way they are.

[1] : http://www.erlang.org/download/armstrong_thesis_2003.pdf

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

#152

I haven't used or looked at Erlang, but bear with me. * no package manager This is _huge_. For example: I currently work very heavily with node.js. I understand all of the many, many problems with javascript. NPM single-handedly makes up for all of them put together, in my eyes. Which is to say - an amazing package manager can make a poor language. A decent package manager (pip, for example) allows a nice language to…

This is a really good point. There's an attempt to tackle this with Elixir: http://expm.co/

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

#153

Before finding Clojure I dabbled in Erlang. In the end I found the "share nothing" model to be too limiting. Sure its great for highly fault-tolerant systems. But the fact is I just don't need that most of the time. It's just easier to setup a AWS autoscaling cluster of web servers running Clojure and be done with it. Oh yeah, and Clojure beats the pants off Erlang when it comes to performance. Even Erjang is faster…

> Clojure beats the pants off Erlang when it comes to performance Source?

http://benchmarksgame.alioth.debian.org/u32/benchmark.php?te...

But I actually meant in general. Having real strings and good floating point support helps performance quite a bit.

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

#154
post #69

Earlier quoted context omitted.

100% of erlang tutorials are for fibonnaci.

I never understood why every language has a plethora of fibonnaci tutorials. "DO THE FIBONNACI IN X USING Z PROGRAMMING PARADIGM" ok thanks, no more please.

Because you already:

1. Know what the Fibonnaci numbers are.

2. How to compute them.

3. Said computation is straight-forward, but it requires some form of looping (either recursion or iteration) and some form of arithmetic.

The combination of those traits means that if I present code to compute the Fibonnaci number for an arbitrary number in some random programming language, you can infer a lot about that programming language. In other words, the only variable in that situation is the programming language itself, which allows you to use the other information you already know to learn about that language relatively quickly.

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

#155
post #52

Erlang is a very specialised language. It does one thing well (scalability) at the expense of not really being a general purpose language. The syntax is just weird, not only in a paradigm-way (pattern matching is not huge in most languages, but, hey, that's the way of doing stuff in functional programming), but on strange places ("read" lines ending on dot, semicolon takes time, it does not share any common syntax de…

This. It's amazing and powerful if you need 1m+ client connections per server. Outside of the epic scale engineering problems of facebook, twitter, google, amazon, whatsapp... It's very difficult to get anything done with Erlang. If you have fewer than a million people using your application at a time, you're probably better off writing it in a more normal language.

There are plenty of applications that would benefit from massive low latency concurrency. Connections is too specific a problem.

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

#156
post #139

Earlier quoted context omitted.

I believe you missed the point. When I first heard about Go, I went to the official website and I was immediately presented with a few code examples. The go tour was fascinatingly good introductory material. Furthermore, the documentation and language specification are very concise, clear and full of examples. What am I trying to say? Put effort into presenting your language and I will put effort into going through t…

No, I get the point, but I don't agree with it, at least not to that extent. > Put effort into presenting your language and I will put effort into going through the material. Give me two shit and that's how much interest you will get from me. See, I really don't think it's worth courting people who have that attitude. If your motivation is _that_ low, it's probably not for you anyway. At this point, even people who d…

Lots of people enjoy learning for the sake of learning, but there is an infinite amount of things out there for people to learn. If you don't spend some effort to convince people "Hey, this thing there is really worth learning!" then they won't - even if they are not lazy. No one - even non-lazy people - has the time to learn about everything.

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

#158
post #56

Earlier quoted context omitted.

Not knowing enough about Erlang/OTP or Go: Would it be possible for more of OTP to be replicated in a Go 2.0? What's missing? What would it take? What can never be replicated?

You can recover a substantial portion, but there's a few things you can't quite get back. Since Go is a mutable-state language, and also a shared-state language (isolation is by convention, not by language design), you have to live with the consequences of that. In my supervisor tree implementation, the restart of a monitored goroutine is just to fire off a new goroutine on the exact same object again; if you still h…

I'd have to say your idea of supervisors misses the point.

Supervised processes provide guarantees in their initialization phase, not a best effort. This means that they are always restarted to a known stable state. It's not just a question of retrying, it's a question of returning to a piece of data and environment that is reliable. I wrote on this more in details at http://ferd.ca/it-s-about-the-guarantees.html

If you reuse the same exact object again that can be modified, you lose these guarantees entirely, and it becomes a question of convention and attention to detail rather than something provided for you.

The REPL is a vital part of my every day Erlang experience. I can't imagine living without one when things get tricky in production and that pre-built tools aren't enough. Being able to poke around and inspect everything while it runs is great.

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

#159

To me it sounds like Erlang's biggest departure from the mainstream is http://c2.com/cgi/wiki?LetItCrash , casually letting processes die and be recreated. When I put effort into actually using a niche language (as opposed to merely learning it for fun) I expect it to enable me to write software that's less embarrassingly defective than everyone else's, where Erlang only seeks to reduce the pain from my doing bad wor…

That doesn't mean you shouldn't handle errors if you can. However, there are always more errors and coding bugs left than what you think. Systems with 0 bugs just doesn't exist in the real world. So if you are writing a critical system that is supposed to run 24/7 and your code encounters a "one in a million" bug that got through testing, such that a obscure race condition or something, then to handle it the best strategy is to reset the involved processes and try again.

It's Erlang's answer to the question "What if there is a bug in the system?" Most languages doesn't answer it ("just dont write buggy code!") but Erlang does and tries to come up with a reasonable solution.

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

#160

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're willing to live on the edge a bit, I think the rewards are well worth it.

Post reply on HN