

Ask HN: How many of you guys like erlang - yuashizuki

How many of u like erlang compared to other programing languages, and what are your thoughts about it.
======
HashNuke
I initially learnt Erlang to write websocket backends for browser-based games.
Then found Elixir and moved on to it. I still work with the same stuff that
OTP offers, along with a lot of sugary features that Elixir and it's community
provides.

The Erlang syntax might be weird at first. But you'll get used to it.

Pattern matching for function arguments is a life-saver. Erlang also runs
checks on your module when it gets compiled. It tells you if vars are being
used or not, etc. Very handy IMHO.

The best side-effect of the concurrency model, is that your production
environment, apart from config vars, will be almost same as your development
environment. Unlike most languages today, you won't need a separate server
program (Unicorn, Thin, Passenger, etc). You don't have to put your app behind
nginx or apache. Use Cowboy (or alternatives), which is a server library for
Erlang. I'll take care of stuff for you.

I write some Elixir libraries in my spare time
[http://github.com/HashNuke](http://github.com/HashNuke)

------
jw2013
For the language I love its concurrency model; creating thousands of
"processes" at your PC/laptop is no problem. Message passing over shared
memory also makes your distributed program easy to reason about. When talking
about Erlang, you can't avoid OTP. It makes creating fault tolerant system at
ease. Putting these two pieces together you have a very scalable fault
tolerant distributed system.

I don't like the syntax of erlang though. And the missing of macro makes me
switch to Elixir.

------
bjourne
Not so fond of it. The syntax is ok (after a while), but the way records work
is annoying. You have to use a lot of syntax to reach into records containing
other records, especially if you want to change a field in a record in a
record. They are also compile-time only and "disappears" after compilation
(they become tagged lists).

No builtin syntax for dicts.

Hot code-swapping is its killer feature though. A system mostly written in
Erlang can run multiple versions of itself and gradually upgrade data to the
new version or downgrade to the old one. E.g your webserver can go from 1.0 to
1.1 without having to suffer even a second of downtime. No other language that
I know of has that feature.

------
rubiquity
I love Erlang, though I mostly use Elixir. It's changed how I think about
programming in a very refreshing way. The Erlang community is also incredibly
practical. I enjoy programming languages that are born out of research, such
as Rust and others, but I really enjoy Erlang because it was born out of
solving a problem. We're very fortunate that the problem Erlang creators were
trying to solve back in the 80s and 90s is a pretty common problem today.

It's easy to get hung up at the aesthetics of Erlang. But the parts that
really change you as a programmer are the ideals that Erlang embodies. I urge
you to continue on, or learn Erlang by way of Elixir.

------
amitu
I loved erlang. I still do. To me it is the most well designed
language/library set for distributed programming. I love their approach about
error handling.

But I find golang much more accessible. Erlang does not scale down, for
simpler tasks, erlang feels like an overkill.

Also while I love erlang syntax, and the functional style, my colleagues find
golang lot more palatable than erlang.

------
lastofus
I enjoyed learning and using it. The syntax is annoying though.

These days I've been happy with Python + gevent for the kinds of things I was
using Erlang for (writing load test scripts w/ lots of concurrent
connections). I never had much need for what OTP offers.

~~~
meowface
I love Python and gevent and use them frequently, but unfortunately you can't
deny that it's simply not as performant as using Erlang/Elixir or Golang.
gevent is well-written but it's constrained by CPython's overhead.

------
abips
I love the way Erlang simplifies distributed and concurrent programming.

The syntax is a bit weird though and the library support is lacking a bit but
a very fine language indeed.

