Jonathan Blow - Preventing the Collapse of Civilization (English only)

bus11 HN recommenders · 2019–2023
268K views · talk · evergreen · Uploaded 2019-05-18

Jonathan Blow's DevGAMM 2019 talk argues that software knowledge is being lost between generations and that growing layers of abstraction could lead to a decline in technological civilization.

A perennial HN reference for arguments that software is getting worse and that hard-won knowledge is disappearing.

Watch on YouTube

20 comments from Hacker News

@worldsayshi2019 · in “Docker is vulnerable to a symlink-race attack”

If you'd like to venture further into this rabbit hole I can recommend "Preventing the Collapse of Civilization": [VIDEO] And "The Thirty Million Line Problem": [LINK]

RecommendsView on HN
@karlmcguire2019 · in “"DigitalOcean Killed Our Company"”

This reminds me of recent talk by Jonathan Blow [1], where he talks about how we've made very little progress in the field of software and anything that appears to be progress is just software leveraging better hardware. It's quite scary how low our standards have gotten. [1]: [VIDEO]

@franky472019 · in “How the invention of the book changed how people read”

> I'd expect the bar to preserve any specific content to be a lot lower than what we had in the past. At the moment, I agree. However, as older civilizations rose and fell, their knowledge lived on in physical support, directly accessible by anyone who was taught how to read the language, therefore the assumption was that "as long as the language lives on, books are a good archiving support". When our modern digital civilization falls [1], I'm not sure most of it would be transmittable through long-term electronic archiving supports that may be easily readable (as easily as a written book at least) by future civilizations, because not only the language has to live on, but the technology needed to access the content also has to function. I also agree that some contents will always be more relevant to "backup". As for everything that happened on Facebook (same can be said for most social platforms), it is likely to entirely disappear with the company. One could even see it as a parallel civilization, that has no means of self-preservation other than that of their ruling entity's business interest. [1] Jonathan Blow - Preventing the collapse of civilization - [VIDEO]

@beefman2019 · in “Ask HN: Best Talks of 2019?”

The Soul of Erlang and Elixir, by Sasa Juric video: [LINK] HN discussion: [LINK] Preventing the Collapse of Civilization, by Jonathan Blow video: [VIDEO] HN discussion: [LINK]

RecommendsView on HN
@mrspeaker2020 · in “Amateur radio skills prove useful during bushfire emergencies”

Of course that's true - we probably don't need to start re-teaching the abacus... but I'm careful about getting too complacent. When everything has been going well for a long time it's tempting to think this will continue forever. But one, say, global pandemic can bring everything down - and some of our modern conveniences can be gone... possibly for centuries. An interesting (programming) talk by Jonathan Blow on the subject of losing knowledge! [VIDEO]

RecommendsView on HN
@spectramax2020 · in “Stop Perfecting, Start Shipping”

I am not so sure. This is a handwavy advise I always hear from contemporary business wizbangs, but I don't think it is objectively or universally true. Pedantic, careful and attention to detail, perfectionist products that just work without things breaking all the time are a pleasure to use from the standpoint of the customer. Figure out the implementation details, funding, motivation, etc. as an entrepreneur - shipping broken products to paying customers is something that I only see in the software industry. You don't buy a vacuum cleaner and expect to send half of the missing screws to the customer 6 months later. Hell, just 20 years ago when you bought your SEGA game cassette, it shipped as a final product. Not to be patched ever. Once its out to the factory, if you found a bug, tough luck. Yes, this analogy has its limits, but silicon valley mentality of this startup hustle is questionable. I recommend watching this incredible talk (it's about software) : [VIDEO]

Strongly recommendsView on HN
@perfect5th2020 · in “An Intro to Compilers (2017)”

I took a couple of compiler courses in university, and I think for the most part it made me a better programmer, mainly because it enforced understanding of how specific programming concepts and constructs are generally implemented. That, and a more intense look at the "heap of abstractions" you're generally working with when you write a higher-level language. I've always advocated that, if you want to really understand the tools you are using, you need to understand at least one level below the "surface abstraction" that you are working if. Even better if you can understand two or three levels down. There's a great talk from game developer Jonathan Blow [1] that describes how knowledge is lost "generationally" due to our lack of understanding of the black boxes we build things on top of. Not sure I 100% agree with his thoughts, but it's an interesting take. [1] [VIDEO]

RecommendsView on HN
@fagnerbrack2020 · in “Ask HN: Why is development so expensive?”

It costs so much mostly because programmers don't know how to write software cost-efficiently. As everybody follows the same path, VCs start to believe the cost is increasing when in fact it's the programmer's knowledge of cost-efficiency software design that is decreasing. Take a look at this: [VIDEO] The costs to develop software are ridiculous and unrealistic. It turns out that if enough people act as ridiculous and unrealistic that becomes the new normal.

RecommendsView on HN
@chansiky2020 · in “AI writing code will make software engineers more valuable”

I agree with the sentiment that they only augment our capabilities, but then we end up with another problem, which is that the people who write the software are not fully aware of how it all works. Relevant to my argument is Jonathan Blow's `Preventing The collapse of Civilization` talk in which he discusses the disappearance of knowledge as generations pass: [VIDEO]

@ipi2020 · in “Ask HN: What Are the Big Problems?”

Quality Software : Yes, this is becoming more and more important and is overlooked at many levels. With more of our infrastructure, lives and the future of humanity in the hands of a bunch of software & hardware. We need to take things a tad bit more seriously. I believe this is not yet a big problem but it is becoming one. [VIDEO] [LINK]

@akkartik2020 · in “Bootstrapping a Forth in 40 lines of Lua code (2008)”

You've probably seen Jonathan Blow's talk on the subject: [VIDEO] I'm super interested in the subject: [LINK] . In the framework of this thread I focus on 2 of the 3 layers: problem and software. Hardware is out of scope. For now. Recently I've started thinking about BIOS (inspired by [LINK] ). So perhaps it's only a matter of time.

@sjy2020 · in “The Centralized Internet Is Inevitable”

The author of this article, Samo Burja, also gave a great lecture in 2018 called “Civilization: Institutions, Knowledge and the Future” ( [LINK] ) which was mentioned in Jon Blow’s popular 2019 talk on software complexity, “Preventing the Collapse of Civilization” ( [VIDEO] ). Burja’s talk is worth watching if you’re interested in his analysis of technology and history over an even longer period, and it provides some context for his remarks at the end of the article about intellectual institutions and the benefits of centralisation.

@d_burfoot2021 · in “Crazy New Ideas”

I follow Blow's work and opinions quite closely. I am quite confident he was NOT criticizing Mighty specifically. Instead he was deploring the state of software engineering in general and web programming in particular. He is saying something like "I can't believe web engineering sucks so bad that a tool like Mighty actually makes sense". See his talk about preventing the end of civilization (!!): [VIDEO]

RecommendsView on HN
@colllectorof2021 · in “Text editing hates you too (2019)”

>Nostalgia for the simplicity of the past ends up having ugly cultural implications. It's easy to say "let's go back to the time when things were simple"; it's a lot harder to say "folks in (e.g.) Israel shouldn't be able to type in their native language". This is a ridiculous mischaracterization of what Jonathan Blow was talking about. Here is the full presentation. Very much worth watching in its entirety and thinking about: [VIDEO]

Strongly recommendsView on HN
@tuckerconnelly2021 · in “React Renderer for Three.js”

While not incompatible with ECS, the DOM and this renderer go all-in on the javascript event-loop. You would have to write your own run loop, which executes the systems on every frame (ideally creating a DAG and executing in parallel while possible), and leave the event loop behind, with all the niceties like `onClick`, to go full ECS. Otherwise you'll create some Frankenstein monster of part ECS, part event-loop, part declarative React. Additionally, you can throw OOP in that mix as well, because Three.js has it's own whole OOP-style framework, that you're strapping declarative React on top of with this renderer. Reminds me of Jonathan Blow's talk on the end of civilization via endless layers of abstraction[1]. I really think, when it's ready, a Bevy[2]-style system either native or compiled to WASM with WebGPU will be ideal. And while I'm airing opinions (forgive me), I think writing shaders now is like SQL 30 years ago. Developers left optimizing difficult--according to them--SQL to database administrators by abstracting it away into ORMs. If history is any indicator, I think we'll be having the same arguments on Hacker News 30 years from now about 3D frameworks vs writing shaders directly as we're having now about ORMs vs writing SQL directly. [1] [VIDEO] [2] [LINK]

@city412021 · in “The universe has already made almost all the stars it will ever make”

There's also the pessimistic view that we will actually lose progress and regress over time. Jonathan Blow has an interesting talk on the subject: [VIDEO]

RecommendsView on HN
@SQueeeeeL2021 · in “How are Rome's monuments still standing?”

Jonathan Blow makes a bunch of great points about our simplified view of ancient people, versus the reality of their complex achievements which could only be brought about by lots of ingenuity and iterations. [VIDEO]

RecommendsView on HN
@rglover2022 · in “The End of Localhost”

No. This is the absolute wrong direction. In effect, you're giving a third-party absolute control over your code and your ability to work on it. You're also disconnecting the developer's mental model of how all of this stuff works (arguably why there's so much bad code floating around). Eventually, that will devolve to people not knowing how any of this works and the industry will collapse. It's an abstract line of argumentation related to this, but Jonathan Blow nailed it on this idea a few years back: [VIDEO]

@PartiallyTyped2022 · in “Ask HN: Is software becoming less efficient?”

> software actually becoming less efficient? I'd argue that software is becoming worse in some ways. It seems that the acceptable tolerance is _very_ low these days, with most people are just shrugging issues off. Personally, I find this talk by Jonathan Blow to be rather inspiring: [VIDEO] As for software becoming less efficient specifically, I'd say that it is, for example, relying on microservices for everything is probably not a good idea for most companies. Not everyone is AWS, nor do they need to be.

RecommendsView on HN
@gradschool2023 · in “Ask HN: What are the “lost arts” of our field?”

Well-known game developer Jonathan Blow has a lot to say about software and technology more generally being in decline due to skills being lost when older generations retire [1]. In my own experience, writing code with pointers in it used to be a skill expected of entry level programmers, and getting the hang of it was something of a rite of passage. Around the time Java started being used as a teaching language, it became best practice to rely on the language's standard libraries instead of rolling one's own linked list or whatever, and I instructed university students accordingly. As things have developed, the design effort put into Rust seems to imply that pointers are now regarded as a grand challenge problem. These days I don't tie my own neck ties any more but wear the clip-on kind because the knots have been developed and tested by experts. [1] [VIDEO]