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
“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. linklinkthis videolink 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.
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
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
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
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
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
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
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.
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)
Cites itChaoticGoodNov 2014Full 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
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
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
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
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
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 )