6 ms·
Inside Erlang – Joe Armstrong tells his story (2014)
- barking 8y agoI'd never heard of the man before his passing but I don't recall another person being remembered here with as much affection.
- jaabe 8y agoI had heard of him but because no one uses Erlang where I live it was kind of easy to ignore. I wish I hadn’t though. Watching some of the talks he’s given on the problems of software in the wake of his death has been a real eye opener. The physics approach to building a language which tries to break the laws of physics as little as possible is truly brilliant. I don’t know how much time and effort we could have saved ourselves from wasting if we’d gone with Erlang’s take on concurrency and messaging, but it’s a lot. Just today I scheduled a meeting where we need to talk about how to handle messages not making it all the way through a few REST-based sevices. I doubt we’ll start using Erlang though, it’s just too risky when you can’t hire anyone, but you do feel a little stupid fighting problems Joe solved before your youngest hires were born.
- brightball 8y agoThere's always Elixir where you can get the best of both. There's a lot of developers out there.
- jaabe 8y agoNot in my country.
- brightball 8y agoWhich country?
- nathan_long 8y ago> I doubt we’ll start using Erlang though, it’s just too risky when you can’t hire anyone Can you train them?
- toast0 8y ago> I don’t know how much time and effort we could have saved ourselves from wasting if we’d gone with Erlang’s take on concurrency and messaging, but it’s a lot. [...] > I doubt we’ll start using Erlang though, it’s just too risky when you can’t hire anyone [...] It's a risk to get started, but if you're saving time and effort, that time can be used to train. I work at an Erlang shop, and none of our early employees knew Erlang before we were hired -- we took an existing Erlang application and adjusted it to suit our needs better; over time we've rewritten the whole thing (while it was running). If you're trying to hire experienced Erlang developers, it's hard because there's not that many. Instead, hire smart developers that are willing to try something different, and are good at interfacing with other systems, and willing to look under the hood from time to time.
- shepardrtc 8y agoIf you watch some of his videos and read his work, you just get this feeling that he's this happy, hard-working soul that has created a masterpiece and loves it with all his heart. His positivity is infectious.
- justbaker 8y agoHis book on Erlang was one of my first programming books I ever read. I didn't know of his passing until I saw this. :(
- jamesblonde 8y agoJoe mentions he used to be a physicist and how Erlang contributed to the discovery of the Higgs Boson. I heard him tell this joke more than once (we were colleagues): "Higgs boson walks into a church, and the priest says, 'I'm sorry we don't allow Higgs bosons to come to churches.'And [the Higgs] says, 'But without me, you can't have mass.'"
- MarcusE1W 8y agoWhat sometimes puzzels me is that ERLANG is described as quirky and difficult to read. I find that once you learned a bit about it for just one day or so it is a very simple to write language that just flows on the screen from your thoughts. So it might look quirky, but really not for long and then it's quite fun to use. And that's before looking at the ease how you use concurrency, process restart, hot swap..
- njepa 8y agoI think the application of the language is quirkier than the language. There is a fairly high barrier to doing something ideal. In languages like python or c you can pretty much just write a few lines and you got something representative of what you can do. In this thread for example people are arguing whether you should make command line programs even in elixir: https://elixirforum.com/t/elixir-static-app-binaries/15335/42 https://elixirforum.com/t/elixir-static-app-binaries/15335/4...
- lelf 8y agoLet them argue. https://erlang.org/doc/man/escript.html https://erlang.org/doc/man/escript.html
- Jtsummers 8y ago> There is a fairly high barrier to doing something ideal. Can you elaborate on what you mean here? I don't quite understand your message.
- njepa 8y agoI mean that if you want to do something with e.g. python it is pretty easy to access what is good about python. You can make a script, make it "pythonic", use some modules and package it. And that sort represents a good, useful, python program. With Erlang it is generally a lot harder to access what it is good at. Not only do you have to learn the language, which is a bit different, but things like how to configure and distribute the virtual machine, how the concepts of otp works and maybe even things like dialyzer. I realize that I don't have to learn all that, but still the distance from writing a simple program to what is the unique features is still a lot longer. At least that is my impressions.
- nathan_long 8y agoI tweeted this about Joe: > I wish I'd gotten to meet @joeerl. So bright and enthusiastic. Erlang embodies so many insights that seem obvious in hindsight. Eg, you can't prevent all programmer mistakes. You can't ensure computers never die or get disconnected. All you can do is make a system that copes. > Many programming languages and tools exist to deal with the basic fact that humans make mistakes. Type checking, encapsulation, TDD, etc - all because without help, we will do dumb things. Erlang taps us on the shoulder and says "and ALSO your computer could melt. Start there." > In Joe's words, "To guard against the failure of an entire computer, we need two computers." Obvious. Brilliant. > The only place you can handle failure of a process on Machine A is in a process on Machine B, which can't share any memory with the first process and can only pass messages to/from it. And for consistency, Erlang handles all failures that way. > Then you notice that these shared-nothing processes are easy to run concurrently because neither can mutate the other's state and cause race conditions. And that this scales beautifully when you have multiple CPUs. > These are some of the insights I got from reading Joe's thesis. I'm sure I missed a lot of others and hope to re-read sometime. I wrote up some of what I learned at https://dockyard.com/blog/2018/07/18/all-for-reliability-reflections-on-the-erlang-thesis https://dockyard.com/blog/2018/07/18/all-for-reliability-ref...
- nathan_long 8y agoThe thesis itself is at http://erlang.org/download/armstrong_thesis_2003.pdf http://erlang.org/download/armstrong_thesis_2003.pdf
- velox_io 8y agoSuch incredibly sad news that he has passed away, I met Robert Virding a few years ago (small group of us went out for a meal). I had hardly heard of Erlang before, followed much more since, plus many of their talks. It's fascinating how physicists design a programming language/ system, especially the treading/ distribution model. I think it was WhatsApp the catapulted Erlang to the limelight (outside of telecoms), it's doubtful that they would have scaled so quickly had WhatsApp been written in anything else. Rest in Peace Joe, and my condolences to his friends and family.