4 ms·
Just curious, what do you use Erlang for? I can think of neural networks as a possible use case but I don't hear much in the way of that.
by arthurcolle 12y ago
Just curious, what do you use Erlang for? I can think of neural networks as a possible use case but I don't hear much in the way of that.
- lostcolony 12y agoThat case has been talked about a little bit. http://www.springer.com/computer/swe/book/978-1-4614-4462-6 http://www.springer.com/computer/swe/book/978-1-4614-4462-6
- dozzie 12y agoMostly for network services and sometimes for network clients.
- kungfooguru 12y agoPersonally? To just restrict it to professionally, I've worked a few places using Erlang. One for providing resource discovery to the rest of the internal systems, one for a financial matching engine and currently at Heroku for the routing layer and the logging layer(https://github.com/heroku/logplex https://github.com/heroku/logplex).
- mononcqc 12y agoAuthor here. I've used it professionally as a trainer and course developer (teaching Erlang), in Real Time Bidding systems for advertisement, and I'm currently at Heroku, where we use it for the routing layer and part of the logging layer of the platform.
- MCRed 12y agoAny time you need to do multiple things at once, erlang (or elixir) is often the best choice. EG: If you have a website and want to serve more than one request at at time. If you have multiple people chatting or sending mail, or instant messaging, or voice communicating, erlang is a good choice. If you have a search engine with many people searching, while spiders crawl the web, erlang is a good choice. The only "downside" to erlang is new syntax and that its "slower" on a given node. But this last one isn't really a downside-- you can scale a process to 20 nodes with erlang a whole lot better than, say, node.js or java or go. None of those really support concurrency properly (of the ones who even try.) This makes erlang unique. I think many engineers try to tell themselves that the JVM or node.js or Go can be concurrent, but they are really just making excuses for the fact that the erlang syntax is a bit of a hurdle for getting started. I'm fine with that- it makes a great hiring filter! If someones learned erlang, you know something that makes them better than most of the rest of the programmers out there who are happy to believe rationalizations that let them get away with not learning erlang. (And if you're not thinking about concurrency you're even further behind.)
- arms 12y agoI'm curious why you think Golang doesn't support concurrency properly.
- pessimizer 12y agoFor comparisons between Go and Erlang, I've been passing this out lately: https://news.ycombinator.com/item?id=7277957 https://news.ycombinator.com/item?id=7277957 edit: the entire thread, not just the OP.
- MCRed 12y agoI know go is not concurrent. It doesn't even try.
- mononcqc 12y agoGo is concurrent, and so is clojure (as mentioned in another response of yours). I don't know what definition of concurrency you're running with, but all of those I heard of, they make it possible to have it there. Not necessarily at the same scale or through the same means, but they definitely make concurrency possible.
- ffreire 12y agoWhat would you say about Clojure, then, where one of the big selling points is concurrency?
- stonemetal 12y agoCompletely different definitions of concurrency. For Clojure what ships in the box as concurrency is multi-thread, single process concurrency(aka built around shared memory). Erlang devs knew that would never scale beyond a single box so they didn't bother going after it. They built single-thread, multi-process concurrency as the core of their concurrency model(share nothing). This means by default Erlang concurrency primitives work beyond a single node, Clojure's don't.