Live data from Hacker News

Which companies are using Erlang, and why?

erlang-solutions.com

191–200 of 204 posts

Re: Which companies are using Erlang, and why?

#191

Earlier quoted context omitted.

I’d not consider relup and module loading the same feature. It is rare to see relup (though I have used it, it’s tricky to make work) but hot code loading of modules was something we used extensively both during development but also in production to test out patches for problems. It was super easy to use and never a big problem. Keep in mind that we rolled out the patch incrementally to one or two machines and then t…

Not sure if you're asking, but I'm not repeating someone else's rumor. I started the set-up I work with using hot loading (after all that is one of the things that attracts to Erlang) where I mean just reloading modules on the VM. Unfortunately I would get module order wrong from time to time or I would forget dependencies, and I've seen many badfun errors as well (I admit I used too many anonymous functions). With o…

I see. Fair enough. It's definitely something I know can work but like most things it does take work and sometimes it's not worth the trade in effort for the capabilities one might gain otherwise.

Badfun errors are a great example of something tricky if you're not used to thinking about how the compiler translates these to private functions via lambda lifting. It's the same reason funs are not something you should rush to pass around over a disterl cluster. Recursive functions which keep fun's around in a loop also become a problem if they're long lived.

I usually point out that first class modules or MFA tuples are more idiomatic in Erlang than opaque first class functions as values but we're off into the weeds here. It's a good example of where effort and gotchas become a barrier for many.

Re: Which companies are using Erlang, and why?

#192
post #29

Earlier quoted context omitted.

Erlang's advantage is being able to build a featureful, secure, scalable and performant enough communication backend in very little time and effort. This is a niche in which it can not be beaten.

> ...in very little time and effort. You have a very naive view of large-scale distributed systems. For companies that truly need them, "time" and "effort" are never a consideration. Furthermore, the challenges facing these companies in battling project delays and cost overruns are the 100% organizational and political, not technical.

Sorry but it seems you have a naive view of large companies :-) They are giant spendthrifts, are bogged down in tons of bureaucracy, and overload developers at 1.5–2x allocation. With these conditions, you'll be lucky if you can get the compute capacity you need to run critical services. Oh, and also if some architect doesn't come around and instruct you to write everything in NodeJS 'because we can backfill NodeJS devs easily'.

Re: Which companies are using Erlang, and why?

#193
post #114

What would be a good use case to learn erlang/elixir with that is not just a chat app? Online gaming? Collaborative tools?

A Bittorrent client is a pretty good one. The protocol is fairly well-documented, and the domain is very well-suited to the language.

I'd use this if someone made a good one! I'm currently using Transmission on Mac, which has more than its own fair share of issues, most notably the UI freezes in any action that takes time, like moving a file across hard disks or to a network drive, but IIRC all the others I have tried (Deluge, qBittorrent) also have multiple similar issues.

Re: Which companies are using Erlang, and why?

#194
post #15

I have never programmed Erlang but it feels like it is the currently only language that is some kind of secret weapon. It has similar aura than Lisp had before that with Erlang you can do stuff beyond "normal" languages.

Tons of language are secret weapons if you use it for what they were created.

Here are some more outside of Erlang, that I know of and I'm sure there's more.

APL/J/K - mathematical algorithms

Prolog - logic, tons of business rules

Forth/Lisp - bottom up programming, when you have an idea of the primitives you need to tackle a problem, but not exactly sure how to put it together.

Assembly - When you must absolutely run impossibly fast especially on very small CPUs

AWK/Perl - slice and dice text files

For these languages, I don't substitute for any language. I'll never slice and dice with Java, Python, Go. I don't care. Awk or Perl. I'll never implement tons of rules in any other language, I don't care what logic library they implement without first doing so in Prolog.

For the solo programmer, the above languages hold very true. I have played around with Erlang since Prolog influenced it's syntax, but I'm yet to have to build a large scale fault tolerant system that needs it, but the knowledge is tucked away at the back of my memory should I ever.

I feel that Python, Javascript and Go can also be some sort of secret weapon if used in the right place.

Re: Which companies are using Erlang, and why?

#195

My only exposure to Erlang has been through RabbitMQ and while I can't comment much on the language itself, managing the packages is a dependency nightmare. Like some twisted, mutant, supervillain version of Python, a given version of RabbitMQ will only work with a certain version of Erlang (with horrible, hard-to-understand error messages on incorrect versions), and on RedHat/CentOS, the Erlang packages all misadver…

why wouldn't you just use rabbit rpms that depend on the exact correct versions of erlang? aka els-erlang https://www.erlang-solutions.com/resources/download.html Linux distros have always been terrible places to find reliable packages.

He he. And then you have people complaining that you're a "bad OSS citizen"...

Re: Which companies are using Erlang, and why?

#196
post #174
post #149

Earlier quoted context omitted.

That's often because most clients will already have some sort of environment set up, running some OS and with certain features installed and most importantly: they don't want to have 5 different projects working on 5 different frameworks because that'd be a nightmare to maintain. Once a company gets into a tech stack, they'll want to stay within it as much as possible and that makes plenty of sense.

You dont want to put all your eggs in the same basket, not in this age when a framework can become obsolete in just two years. It only make sense if you already have a small team - you want to use what they know best. But if you are growing you can have many small teams. You will also exhaust the talent supply if you lock yourself down to only one platform/language/framework.

Yeah, tell that to Java/Spring or C#/ASP :-)

Re: Which companies are using Erlang, and why?

#197
post #96

Earlier quoted context omitted.

No; as I understand it Elixir's only advantage is, arguably, better syntax. I don't mind Erlang's syntax that much. We were handling, in peek hours, over 100k requests per second spread over 3 servers. Funny you should mention scalability as something that somehow justifies Erlang's other shortcomings. I don't think scalability is something Erlang/OTP does out of the bag. One thing we learned the hard way is that Erl…

The point about Elixir is it does better in ecosystem, libraries, tooling and removes a lot of complexities you named.

Every time I wade into Erlang projects, I’m struck by the cultural and overall ecosystem differences.

Re: Which companies are using Erlang, and why?

#198

Earlier quoted context omitted.

They make the most sense if you want lots and lots of simultaneous clients. Plus it gives you a little bit of safety if you write crappy code. Typically not suited for embedded. (Assuming you mean embedded as in severely limited in resouces, and not "modern embedded" where you have lots and lots of unused system resources. If you mean the latter then anything goes.)

Yep, modern embedded (e.g. rPi and other Intel-based devices). I suppose there would be limited connections from each device, but many devices.

It’s nice in that the actor model provides good concurrency. One great benefit is that each "device" or connection essentially runs as a single sequential process. That makes data stream processing pretty nice on embedded. Like processing serial port data. Though it sounds like you almost just want a job queue, which would be pretty easy but not really benefit from actor model.

One example where a Nerves setup would be great is say a redundant onsite mini-cluster for processing and redundancy. As an alternative to say a k8s setup to manage devices with Nerves you could readily flash your "app code" to multiple RPi’s, connect them on a lan, and not have to have a separate clustering layer.

Re: Which companies are using Erlang, and why?

#199
post #168

Earlier quoted context omitted.

Let me unpack my way comment: a) Erlang (as opposed to something else) is only useful for large distributed systems. b) If your organization is at the scale where you need a large distributed system, then the problems in your project aren't related to code or to coding speed.

a) But it is not. Erlang is a very productive language and works great even for small projects. b) Needing a large distributed system is a requirement that one can get to from lots of situations. You are making way too large of a generalization.

a) Every programming language is a "very productive language" that "works great". Nobody ever thought to themselves "let's make a programming language that's hard to use and wastes time". (And even if they did, they would have never convinced other people to use it.)

b) No. Large distributed systems is not something you stumble onto, it's a result of many years of organic growth.

Post reply on HN