Talks to Watch

"The Mess We're In" by Joe Armstrong

398K views · Sep 19, 2014 · 45:50 · 10 HN recommenders · 20 mentions · discussed 2014–2025

Joe Armstrong, co-inventor of Erlang, gives a funny and opinionated Strange Loop talk on the tangled state of software: build tools, package managers, entropy and the physical limits of computation. He argues for ideas like naming things by content hash and throwing away your first version.

Why Hacker News points people here: HN returns to it constantly as a witty, still-accurate diagnosis of why software is bloated and messy, and as a go-to recommendation in any thread on modules, package managers or software quality.

“one of those talks which were incredibly funny and informative at the same time”HN comment, 2019

What Hacker News said 20

Strongly recommendsdpeckApr 2019

“Highly recommend his thesis (2003) and a few of his great interviews/presentations”

Armstrong talks about how software can get better, with snark

Full comment

That is so sad, he was in his late 60s and it seemed like he had a lot of life left in him, talking about how software can get better and having a great (and sometimes snarky) outlook on the profession. Highly recommend his thesis (2003) and a few of his great interviews/presentations for anyone who isn’t familiar with Joe, it captures a lot of what he thought about and pushed for in his professional life. link link this video link I hope his family and friends can find some comfort in how much he was appreciated and admired in the development community.

Strongly recommendszaph0d_Apr 2019

“one of those talks which were incredibly funny and informative at the same time”

Funny and informative talk, including a story about a single Erlang code comment

Full comment

This is absolutely devastating! His talk "The Mess We're In" was one of those talks which were incredibly funny and informative at the same time. I absolutely lost it, when he told the story of the single comment his coworker put into the Erlang code.[1] Rest in peace! [1] this video

Strongly recommendsleonroyMay 2019

“Fantastic watch, thanks for recommending.”

Famous Joe Armstrong talk, a fantastic watch

Full comment

> "The mess we're in" famous talk by joe amstrong For anyone else: this video Fantastic watch, thanks for recommending. Sad to hear that Joe Armstrong passed away a few weeks ago.

in “John Carmack on QuakeWorld latency and business model (1996)” · view on HN
Recommends0xmohitOct 2016

“The Mess We're In" by Joe Armstrong [3]”

Full comment

How To Design A Good API and Why it Matters [0] The Principles of Clean Architecture [1] The State of the Art in Microservices by Adrian Cockcroft [2] "The Mess We're In" by Joe Armstrong [3] [0] link [1] link [2] link [3] this video

in “Ask HN: What's your favorite tech talk?” · view on HN
RecommendshepekDec 2017

“Joe Armstrong gives a very good talk about ideas in the article”

Armstrong on the article's ideas

Full comment

Joe Armstrong gives a very good talk about ideas in the article in "The Mess We're In" (2014): this video

in “Physical Limits of Computation (2009)” · view on HN
RecommendstoshApr 2019

“Still so spot on.”

Armstrong's talk on software mess remains spot on

Full comment

Just re-watched his Strangeloop talk: “The mess we’re in”. Still so spot on. He will be dearly missed. this video

RecommendscamgunzAug 2019

“Might I suggest Joe Armstrong”

Suggests Armstrong as a broader perspective beyond Fowler

Full comment

Agree, but people tend to stop at Fowler and live it as gospel. There is a profound richness in the different ways to think and talk about computers, engineering, and information science, far more wonderous than any one person can catalog. Read SICP, Knuth, Code Complete, Codd. Hell, just YouTube around. If your vocabulary is prescribed by literally one guy in a fedora, you gotta get out there. Might I suggest Joe Armstrong [1] :) [1] this video

in “Software Architecture Guide” · view on HN
RecommendsbadsectoraculaDec 2021

“here is a nice (and funny) talk from Joe Armstrong on the topic”

Funny talk on broken, bloated software and nobody understanding systems

Full comment

Luddite is someone who is opposed to new technology, which doesn't apply here as the sentiment isn't about being opposed to the new tech but about the new tech not being taken advantage of. The software we build today is "vastly" more powerful in the sense that, strictly speaking, you can do more stuff, but it is way less powerful - and often broken - than what it could be, considering what you can see being possible on older hardware and what seems to be done in modern hardware. Also it isn't really something that happens today, here is a nice (and funny) talk from Joe Armstrong on the topic from almost 8 years ago[0]. Though this sort of sentiment goes way back, e.g. Wirth's classic "Plea for lean software" article from 1995[1]. (Joe's talk is more about the broken part and IMO he misidentifies the issue being about trying to make things fast when the real issue -that he also mentions- is that pretty much nobody knows what is really going on with the system itself) [0] this video [1] link

in “C64 OS: make a Commodore 64 feel fast and useful” · view on HN
RecommendsmhitzaFeb 2022

“Joe Armstrong's "The Mess We're In" talk could be interesting as well”

Related talk on why software is sloppy

Full comment

For those that enjoyed the video you linked, Joe Armstrong's "The Mess We're In" talk could be interesting as well this video

in “Ask HN: How do you explain the sloppiness of modern software?” · view on HN
RecommendsmifApr 2024

“It’s a great talk about the physical limits of computers and computation.”

Talk about physical limits of computers and computation

Full comment

Reminds me of some of the remarks Joe Armstrong made a while ago [1], and which I came across via another submission a couple of weeks ago (which escapes me). It’s a great talk about the physical limits of computers and computation. [1] this video

in “Did we lose our way in making efficient software?” · view on HN
Cites itdotyNov 2014

“where he opines that the web would be great if, instead of URLs, every published document were just named with a hash of its content.”

Armstrong on naming documents by content hash

Full comment

I think Mr. Armstrong would approve, given his comments near the end of this video , where he opines that the web would be great if, instead of URLs, every published document were just named with a hash of its content.

in “Why do we need modules at all? (2011)” · view on HN
Cites itVerdexNov 2014

“I saw Joe's strange loop talk [1] a while ago”

Full comment

I saw Joe's strange loop talk [1] a while ago and I get the same vibe reading his post as I did when watching the video. It sounds very cool, but I can't shake the feeling that it only works for 85% of the code. That is to say if you program in exactly the right way, you will be able to do everything you want and it will work with this system, but there are ways of programming that won't work with this system. More specifically I feel like there are two problems. 1) It feels suspiciously like there's a combination of halting problem and diagonalisation that shows there are an uncountably infinite number of functions that we want to write that can't be named (although I would want to have a better idea of how this is supposed to work before I try to hammer out a proof). 2) I don't understand how it's possible for any hashing scheme to encode necessary properties of a function such that the function with necessary properties has a different hash than an otherwise identical function without these properties. For example can we hash these functions such that stable sort looks different than unstable sort? Wouldn't we need dependent typing to encode all required properties? And if that's the case couldn't I pull a Gödel and show that there's always one more property not encodable in your system? [1] - this video [2] [2] - link (thanks for the link)

in “Why do we need modules at all? (2011)” · view on HN
Cites itChaoticGoodNov 2014
Full comment

Lets not forget that the usage of javascript correlates with need to target the omnipresence of browser and not for merits of javascripts idioms or design pattern paradigms. Javascript is a great hacker language. All the improvements as stated above will extend the capacity of js to quickly hack up mvp apps. With that said I think the argument can be made that javascript was never designed from the ground up to support this new omnipresent realtime persistent application platform. For me the question remains to be seen answered if a server that was designed the ground up to be a server such as netty offers a more stable solution then node.js I think some might say that ES6 is like putting lip stick on a pig therefore patching up JS to keep evolving as more expressive language. Every time I run NPM install I wonder what kinds of incidental complexities I am I getting myself into. Then dred if I have learn yet another build system. Every time I run NPM I think of an old Jim Breuer joke [1] -- NPM is the "tequila" in the JS party of complexity. ASM.js is amazing, but are we getting a little too drunk on our technologies. ASM.js just might be amazing koolaid when it comes to the sobering decision to build something from "the feet up" to serve on purpose and serve it well. JS can be the jack of all trades and master of none and that can be a bad thing. One thing is for sure JS is really fun, but I would not go making a stock market exchange out a javascript codebase. Speed is not

in “JavaScript's Future seems very bright” · view on HN
Cites itkylebrownJul 2015

“See Joe Armstrong, The Mess We're In”

Armstrong on why package managers suck: entropy

Full comment

Javascript package managers like npm tend to work much more seamlessly than the old unix ones. Wouldnt mind scrapping them all for link Also, the reason package managers suck is because.. entropy. See Joe Armstrong, The Mess We're In this video

Cites itgandreaniJun 2018

“really similar to an idea that Joe Armstrong presented in Strange Loop one time”

Joe Armstrong presents a similar idea in his Strange Loop talk

Full comment

Madness! Or actually really similar to an idea that Joe Armstrong presented in Strange Loop one time (just the idea no demo or anything) this video

in “VFS shim that allows a SQLite database to be appended to another file” · view on HN
Cites itrandomsearchAug 2018

“A little off-topic but good for perspective”

Perspective on the mess of modern software development

Full comment

I'd say your comment is not constructive: you're asking me to name all the solutions, otherwise my observation has no merit? I'll expand a little. Let's take a single example: developing a single page web application. To know how to do that, I need to learn HTML, CSS, JS Frameworks, web pack or whatever. Linters, preprocessors, package management .... Contrast that to building flash app where a designer could use a GUI to produce a beautiful interactive app in no time at all. Yep, we all hated Flash, but in terms of accessibility to creators, it was beautiful compared to the mess we've made. A little off-topic but good for perspective: this video

in “The problem with programming and how to fix it” · view on HN
Cites itsvieiraMar 2021

“Joe Armstrong's talk _The Mess We're In_ where he talks about the pains he had getting his slides for the talk ready”

Armstrong describes pains getting his own slides ready

Full comment

Your travails reminds me of Joe Armstrong's talk _The Mess We're In_ where he talks about the pains he had getting his slides for the talk ready: this video

Cites itj-pbNov 2021

“Joe Armstrong has a joke in one of his keynotes [1], that after you've written the first version of something you should throw it away completely”

Armstrong jokes you should throw away your first version

Full comment

Thanks for the Paper! I'm looking forward to spend my weekend with it. Normally I'm a huge fan of a philosophy of backwards compatibility. Clojure has shown that it is possible with enough dedication. But I feel like it's a liability with the lineage you describe for Rust, the problem space was just too unexplored and vast, and the language has grown too large. Joe Armstrong has a joke in one of his keynotes [1], that after you've written the first version of something you should throw it away completely, because you didn't understand the problem at all when you wrote your solution, and now you understand it a bit better. A bit like how the web would be a much less ghastly ecosystem if we hadn't abandoned versioning for living documents which force every behaviour ever to interact, and god forbid be compatible, with one another, in a combinatorial hairball. Modern browsers would be less unwieldy if they just shipped 30 different rendering engines, one for each major revision, than ship a blob that purportedly is able to still render everyones Dogs website from the 90s (which is not true of course, it's just that nobody from the 90s is here to complain). It's a bit ironic that Rust fell into the same trap that caused the complexity that inspired its inception in the first place. Maybe once the major "features" for safe system programming were identified a new language (revision) should have started with only those features at its core. I fear that if such a language were to cr

in “What memory model should Rust use?” · view on HN
Cites itgavmorJun 2025

“It's part of The Mess We're In[0].”

Full comment

The discovery tax is actually something like O(n log n), because you have to also search and also compare. It's part of The Mess We're In[0]. 0. this video

in “SaaS is just vendor lock-in with better branding” · view on HN
Cites itleocNov 2025

“made plenty of blog posts and public appearances and expressed a number of strong opinions”

Example of Armstrong's public appearances and opinions

Full comment

It isn't entirely true though. The original Erlang guys made Erlang: The Movie link and the sadly missed Joe Armstong made plenty of blog posts link and public appearances and expressed a number of strong opinions (though genially) this video . Robert Virding's public profile is not as high, but he's by no means in hiding either. link — or indeed link )

in “How I fell in love with Erlang” · view on HN