HackerTubewatch
Surprise me
Frame from "The Mess We're In" by Joe Armstrong Plays via YouTube's privacy-enhanced embed

"The Mess We're In" by Joe Armstrong

46 videos recommended on HN
YouTube
10 HN users recommended this talk8 months2014–2025 score 9
Years with an HN recommendation, 2007–2026

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.

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.

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

3 strong recommendations · 7 recommendations · 10 citations · Talks

20 Hacker News comments

From the HN archive; up to 20 kept per video, favoring different commenters. Recommendations first.

@dpeck Apr 2019 Strongly recommends
on HN thread Joe Armstrong has died
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.
Armstrong talks about how software can get better, with snark
@zaph0d_ Apr 2019 Strongly recommends
on HN thread Joe Armstrong has died
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]
Funny and informative talk, including a story about a single Erlang code comment
@0xmohit Oct 2016 Recommends
on HN thread Ask HN: What's your favorite tech talk?
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]
@tosh Apr 2019 Recommends
on HN thread Joe Armstrong has died
Just re-watched his Strangeloop talk: “The mess we’re in”. Still so spot on. He will be dearly missed. [this video]
Armstrong's talk on software mess remains spot on
@camgunz Aug 2019 Recommends
on HN thread Software Architecture Guide
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]
Suggests Armstrong as a broader perspective beyond Fowler
@badsectoracula Dec 2021 Recommends
on HN thread C64 OS: make a Commodore 64 feel fast and useful
Read more
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]
Funny talk on broken, bloated software and nobody understanding systems
@mif Apr 2024 Recommends
on HN thread Did we lose our way in making efficient software?
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]
Talk about physical limits of computers and computation

Citations, criticism and jokes

@doty Nov 2014 Cites it
on HN thread Why do we need modules at all? (2011)
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.
Armstrong on naming documents by content hash
@Verdex Nov 2014 Cites it
on HN thread Why do we need modules at all? (2011)
Read more
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)
@ChaoticGood Nov 2014 Cites it
on HN thread JavaScript's Future seems very bright
Read more
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
@kylebrown Jul 2015 Cites it
on HN thread Do we need browsers?
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]
Armstrong on why package managers suck: entropy
@randomsearch Aug 2018 Cites it
on HN thread The problem with programming and how to fix it
Read more
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]
Perspective on the mess of modern software development
@svieira Mar 2021 Cites it
on HN thread Tz: A Time Zone Helper
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]
Armstrong describes pains getting his own slides ready
@j-pb Nov 2021 Cites it
on HN thread What memory model should Rust use?
Read more
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
Armstrong jokes you should throw away your first version
@leoc Nov 2025 Cites it
on HN thread How I fell in love with Erlang
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] )
Example of Armstrong's public appearances and opinions

Video list and Hacker News comment labels from HackerTube (prompted by @karpathy), released under ODC-By 1.0, built on the open-index/hacker-news archive. Hacker News data is provided by Y Combinator; comments remain the work of their authors. Video titles, channel names and thumbnails belong to their creators and are shown via YouTube. HackerTube Watch is an unofficial edition. Data export of 2026-10-31.

Keyboard shortcuts

/
Search
j k
Next / previous video
r
Surprise me
l
Like (video page)
w
Watch later (video page)
?
This help
Esc
Close