Live data from Hacker News

Joe Armstrong has died

twitter.com

141–150 of 206 posts

Re: Joe Armstrong has died

#141

Back in 2015, I somehow ended up as part of a panel discussion at the end of a conference. The panel was going to include Joe Armstrong, Don Syme (inventor of F#), Tony Hoare (!), and myself (a nobody compared to any of them). During the conference, I wanted to meet each of the other folks on the panel, and ended up in a somewhat lengthy conversation with Joe Armstrong -- mostly about Erlang, but at some point the pa…

Other people have already mentioned Joe Armstrong's 2003 thesis, and I recommend that too.

I very much appreciate Armstrong's sometimes contrarian criticism of the tech industry, and I hope I managed to match the tenor of his frustration when I wrote "Joe Armstrong figured out the right way to do everything, and nobody cared"

http://www.smashcompany.com/technology/joe-armstrong-figured...

About this:

"I mentioned how nervous I was; me, sitting on a panel with such other esteemed and brilliant folks"

I feel the same when I get put into lists with folks like Joe Armstrong. I've made no significant contributions to the tech industry, whereas other folks have made historic contributions. I'm flattered by stuff like this:

https://www.yegor256.com/2016/08/15/what-is-wrong-object-ori...

But it is crazy. I don't belong on a page that includes Joe Armstrong, Rich Hickey and Alan Kay.

Re: Joe Armstrong has died

#142

Years ago I emailed Joe Armstrong about concurrency stuff. I had no idea about anything like multithreaded programming or distributed systems or anything like that, but I had read Erlang was a language well-suited for that stuff. I sent an email asking some seriously noobey questions about concurrency (about why mutation was bad, what made the Actor model work, etc), and instead of a response like "Go read a book and…

I am interested in what he replied back on how Erlang avoids the common pitfalls? Would it be possible to post about it?

Basically, he explained that shared-memory systems simply don't make sense for distributed programs.

It was years ago, but I believe he said something to the effect of "imagine that there's a server in Europe, and a server in America. Where does that shared memory exist?? Shared memory violates the laws of physics!"

He then explained that since Erlang processes don't share any memory, and the only way for them to communicate is via message-passing, there's no need for locks or anything like that.

Re: Joe Armstrong has died

#143

Years ago I emailed Joe Armstrong about concurrency stuff. I had no idea about anything like multithreaded programming or distributed systems or anything like that, but I had read Erlang was a language well-suited for that stuff. I sent an email asking some seriously noobey questions about concurrency (about why mutation was bad, what made the Actor model work, etc), and instead of a response like "Go read a book and…

> he responded back with an incredibly long, well-written email explaining a lot of the minutia of how Erlang avoids a lot of pitfalls and generic concurrency theory.

I love that about Joe. He really really love Erlang and the thing he built and share it with everybody. It shows in his blogs and the talks he gave at conferences.

Re: Joe Armstrong has died

#144
post #136

Earlier quoted context omitted.

Are you willing to share his reply?

I can't seem to find it; I am actually reaching out to a friend that I forwarded it to to see if he still has it.

I was able to find his reply. The stuff after the `>` is him quoting me. There's another part to this somewhere, but I'll have to keep looking.

> Hello!

> I am learning Erlang and really liking it.

Great

> I am finding myself really liking the immutability in regards to being able to reason about my code, but that leaves me with a probably easy question: why does immutability make concurrency easier?

Tricky I guess it makes parallel execution easier (no locks) - it certainly makes programming easier closures really are closures :-)

> Is it because it's difficult to have something in a thread reach-across and modify the state of another thread?

That's not really immutability - actually I hate threads - the difference between a thread and a process is crucial - threads can modify shared state (horrible) -

In distributed systems there is no real shared state (imagine one machine in the USA another in Sweden) where is the shared state? In the middle of the Atlantic? - shared state breaks laws of physics. State changes are propagated at the speed of light - we always know how things were at a remote site not how they are now. What we know is what they last told us. If you make a software abstraction that ignores this fact you'll be in trouble.

> Does that mean concurrency wouldn't be so bad if you kept state mutations contained within one thread?

Yes - if you use the word process, not thread. Processes were invented to provide protection from other computations and to share resources in a clean way - threads share resources in a messy way.

> If you don't have time to answer right now, a link or some guidance into the right resource would be appreciated! I think what you're interested in is the distinction between message-passing-concurrency and shared-memory-concurrency.

Java/C++/etc uses shared-memory concurrency (evil) - Erlang uses message passing concurrency.

AS Alan-Kay said - the big thing about OO is message passing not all the other stuff ...

> > I love Erlang, and I appreciate you reading my message!

Have fun

/Joe

Re: Joe Armstrong has died

#145

Years ago I emailed Joe Armstrong about concurrency stuff. I had no idea about anything like multithreaded programming or distributed systems or anything like that, but I had read Erlang was a language well-suited for that stuff. I sent an email asking some seriously noobey questions about concurrency (about why mutation was bad, what made the Actor model work, etc), and instead of a response like "Go read a book and…

Can you please share that email if it's not too much to ask?

I posted it in a sister thread to this. There's a part 2 somewhere but I'll need to find it.

Re: Joe Armstrong has died

#146
post #39

Anyone know what he died of/from?

I'm always curious about these things because if it's something medical that might be preventable or that has some nonprofits raising funds for, etc., then that can increase awareness. But I can understand if people don't always rush to talk about it.

Re: Joe Armstrong has died

#147
post #40

Earlier quoted context omitted.

I came here to say the same thing. His thesis is extremely readable and illuminating on the topic of reliable distributed systems.

It goes much further than that, it shows how to tackle reliability even in systems that are not distributed. The primary insight is that all software will be buggy so you need to bake reliability in from day one by assuming your work product will contain faults.

Yes, I know. Erlang was not distributed till 1991, roughly 5 years after it was born.

It's also really illuminating how they implemented the first versions of Erlang as a reified Prolog [1]. But that is not explained in the thesis, just in his 1992 paper which he briefly cites.

[1] https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=F4...

Re: Joe Armstrong has died

#148

Earlier quoted context omitted.

I am interested in what he replied back on how Erlang avoids the common pitfalls? Would it be possible to post about it?

Basically, he explained that shared-memory systems simply don't make sense for distributed programs. It was years ago, but I believe he said something to the effect of "imagine that there's a server in Europe, and a server in America. Where does that shared memory exist?? Shared memory violates the laws of physics!" He then explained that since Erlang processes don't share any memory, and the only way for them to com…

Like the way he described thread safety as an oxymoron...

Re: Joe Armstrong has died

#149

Earlier quoted context omitted.

I can't seem to find it; I am actually reaching out to a friend that I forwarded it to to see if he still has it.

I was able to find his reply. The stuff after the `>` is him quoting me. There's another part to this somewhere, but I'll have to keep looking. > Hello! > I am learning Erlang and really liking it. Great > I am finding myself really liking the immutability in regards to being able to reason about my code, but that leaves me with a probably easy question: why does immutability make concurrency easier? Tricky I guess i…

Ah, found the email he responded to a year later. As before, the stuff after the > is him quoting me.

----------------------------------------

> Hello!

>

> Just under a year ago I send you a message asking you about multi-process computing and the like. You gave me a long, detailed email that not only answered my questions, but also explained in pretty-decent detail. >

> I was so impressed by that email that I actually purchased your "Programming Erlang" book, and enjoyed that just as much, and today I started my first job doing Erlang full-time (well, mostly; there's some JS involved).

Great - thanks a lot for buying the book - these kind of stories make it feel all worth while

> I just wanted to thank you for the help. I know a compsci-celebrity probably gets bombarded with emails,

Actually not - I guess it's a 'being polite' thing - I rather like twitter it lowers the entry barrier for communication between people.

I have in the past mailed several of my CS "heros" - and was always rather reluctant to do so. Then to my great surprise I often got long and helpful replies (from Niklaus Wirth, Alan Kay, Jim Gray)

This kind of fits in with my view of life - 95% of people are basically helpful.

I've always thought that converts were gained "one at a time" - imagine a drip drip drip of water falling into a pan - one day it overflows.

We always think it's fantastic to hear the stories of what you guys do with Erlang. (I say we because the Erlang you're using is the product of many people fantastic work) - I'm just the fall guy who writes the books and happened to start it all :-)

I was sat listening to Brian Acton who founded WhatsApp and made 3.5B$ and thought "I invented this crap" - which is a great feeling - and they gave me a tee-shirt.

So the side effect of what I do is I get to meet loads of interesting people and do what I want.

Anyway thank again, and I hope things go well for you.

> and I think it's really cool that you took a good amount of time responding to some random guy on the internet asking for help.

Well every body is a random guy until you share stories.

My wife was a random woman before we met.

Anyway life would be very boring if it were not for random events.

I never run for busses or trains - it was after I read about a guy who missed a train and had a random conversation with a guy on the platform who had also missed the train - this gave them an idea that they turned in a multi-million dollar business.

I guess the other reason that you get long replies is that I'm an author and I don't do short mails.

> As usual, keep up the great work.

I'm trying - though I've recently retired - gives me more time for hobby programming - though I have to tend my garden and so on

Cheers

/Joe

Re: Joe Armstrong has died

#150
Truly heartbreaking. One of my favorite computer scientists of all time. Loved his perspective on all things programming. So much wit, and such a vibrant and wonderful guy. Joe, you will be missed.
Post reply on HN