top | item 25788317

Jonathan Blow – Preventing the Collapse of Civilization

139 points| keyle | 5 years ago |youtube.com | reply

94 comments

order
[+] Zhyl|5 years ago|reply
To state the thesis of the talk:

* Knowledge is ephemeral. Even recording knowledge doesn't imply or guarantee that it will be passed down the generations entire. In fact, throughout history there are times when humankind 'forgot' how to do certain things.

* This applies to software. Software is getting so much more complex (as is hardware) that the knowledge for how to do the intricate or demanding things isn't held by many people, which makes it brittle. Adding layers of complexity on top of each other has created a tower of abstraction that people usually only know a part of, which makes the entire stack brittle if not enough people know every part of it and something breaks (maybe in a hundred years, but if that truly happens, there will be no way to fix it).

Jonathan Blow makes some recommendations about how to avert what he calls 'the collapse of civilisation'. To summarise:

* Simplify tools and processes. Reduce complexity, reduce dependencies.

* Get a better, more intuitive understanding of your technologies and tools at a lower level.

He doesn't explicitly solutionise this, but I would argue that his game 'The Witness' discusses this at varying levels of detail. The gameplay and puzzles demonstrate breaking up knowledge into small composable chunks which can be taught intuitively and wordlessly. The additional materials more explicitly discuss knowledge, learning, understanding and (more generally) truth seeking. If one wanted to avoid the collapse of civilisation, as outlined by the talk, one should play this game and contemplate its message deeply.

[+] pharke|5 years ago|reply
> (maybe in a hundred years, but if that truly happens, there will be no way to fix it)

He also makes the point that collapse often happens over the course of many generations. ~100 years for the bronze age collapse and ~300 years for the collapse of the Roman Empire. I think this is a key point because it is something we don't intuit easily. He then goes on to say that the loss of knowledge that results in such collapses is often the result of a lack of generational transfer of knowledge (hence the slow collapse). This is a well known problem, the Bus Factor. If we want to prevent the collapse of our civilization we need to vastly increase that number on a societal level.

[+] UncleMeat|5 years ago|reply
> In fact, throughout history there are times when humankind 'forgot' how to do certain things.

I wish, just once, that technology people would actually consult historians of science when making these sorts of claims. There is an entire community of people who study this topic for their entire lives and write books about it.

Yet myths persist. So many of the examples of "civilization forgot" are actually just false or at the very least the conclusions drawn about society from these stories are highly misleading.

[+] arexxbifs|5 years ago|reply
He's absolutely got some good points, no doubt about that. And yet, something irks me...

* An industry that can't produce robust software has produced several server operating systems capable of uptimes that far exceed the expected life time of the hardware they run on. [0] Writing this, I checked in on a random server I've got access to. The uptime is 350 days.

* I reboot my personal Linux laptop only when I myself want to install the latest kernel update. The current uptime is 46 days and I use that machine for programming, watching movies, surfing and whatever else I feel like doing.

* I'm willing to bet a few bucks that there are more C and assembly language programmers around now than there has been at any previous point in time.

* I'm pretty sure Blow couldn't have made his presentation slides, recorded his talk, uploaded it to a web site and then watched it in a web browser using Ken Thompson's three week Unix, even if it was running on modern hardware.

* It's true that the OS in both abstract and concrete ways removes capabilities from the CPU, but it also adds a lot of capabilities such as multitasking.

* Pretty much all of the things listed on his "You Can't Just..." are perfectly doable in E.G. Linux. It's not the OS that removes this capability, it's the work of companies trying to protect their revenue (through DRM, IP laws, patent enforcement etc.). I can (and still do) write software in a simple editor without a language server in sight, etc.

Meanwhile, my old Amigas - which I love to bits - crash fatally all the time. Just a few weeks ago, one of them pulled a hard drive partition along with the crash and I actually had to reformat it because re-validation failed (luckily I had nothing of importance on it).

[0] https://arstechnica.com/information-technology/2013/03/epic-...

[+] ziaddotcom|5 years ago|reply
In the example of your Amiga, your hard drive failed, but it probably would still boot right into any game from any floppy that didn't require workbench to have been booted from floppy or HD. The game could very well have been written in workbench booted from workbench/assembler from floppy.

The same game, replicated in Unity, requires a several gigabyte download just for the developer to light up a white pixel on a black background in Unity.

Is the juice of Unity worth the squeeze? It depends on the game I think. Using Unity to get a Super Meat Boy clone on a Nintendo switch starts to ride the line of absurdity (i.e. using a massively complex and capable game engine to make a knock off of a beefed up version of a flash game that was paying homage to games written in 6502 assembly and booted instantly and never crashed).

[+] cblconfederate|5 years ago|reply
> An industry that can't produce robust software

Was it linux? Not exactly a product of industry.

[+] emsy|5 years ago|reply
When asked about his opinion of the Apple M1 (which is heavily discussed recently on HN), Blow said it doesn’t matter in the long term, since software will eventually eat up the performance improvements. It’s easy to get defensive about this argument since us programmers are the ones causing the problem. But as a user, I don’t want to need a 3 GHz machine to run a text editor somewhat responsively.
[+] alpaca128|5 years ago|reply
> I don’t want to need a 3 GHz machine to run a text editor

This annoys me as well. Visual Studio Code is about changing individual bytes in tiny plain text files. I don't think it has a single feature that didn't exist before. Yet its startup time is somehow closer to that of a full-fledged IDE, almost as long as the whole operating system needs to boot. Same with websites; a freshly configured email client can download a thousand messages from the server in a shorter period than it takes to load most news articles in the browser.

And the most baffling thing to me is that such things are so widely accepted. I've seen many users shrugging it off with a "that's just how computers are" mindset; many things are implemented so badly people don't even expect them to work properly.

This may sound a lot like "old man yells at cloud" material, but in the end it can't be denied performance is often at least an order of magnitude away from where it could be - my current laptop has 32 times as much RAM as my first PC, and it still swaps just as frequently.

[+] fnord123|5 years ago|reply
Hardware performance is victim to Jevon's paradox. The M1 will result in more profligacy of cycles. Only battery life seems to have a chance of pushing performance the other way.
[+] triska|5 years ago|reply
This is one of the most insightful talks I have ever seen on Youtube. I highly recommend it!

What makes it stand out particularly is the careful collection and articulation of concrete examples and historical references.

[+] ziaddotcom|5 years ago|reply
I agree, and I think this talk and HN post make a good compliment to the Retrocomputing article and discussion on HN a few days ago.

https://news.ycombinator.com/item?id=25714719

Jonathan does a better job than I did explaining the premise of how retrocomputing isn't just a means to nostalgia, but a means to make sure and verifying we've improved personal computer hardware/software since the initial boom. Emulators don't give us the insight into the whole stack or understanding on the true reliability of these old systems.

As Jonathan says, if our laptops today aren't capable of 99.999 percent uptime, then none of the software runnning on it can be either.

In the days of the Amiga or the Archimedes, it was quite possible to boot entire app or os/app combo and just leave the computer on indefinitely, without it crashing itself even if untouched.

[+] UncleMeat|5 years ago|reply
> What makes it stand out particularly is the careful collection and articulation of concrete examples and historical references.

Unfortunately, it is a really shallow analysis of this topic. He'd do well to speak to experts in history of technology/science when drawing such huge conclusions about humanity. This is just enough history to get people into trouble.

[+] rimher|5 years ago|reply
He makes some good points in the talk, but omg what a troll he is. Also on Twitter he's been a jerk to so many people, I really don't understand. If he's looking for what's wrong with software companies, he's part of the problem with his attitude honestly
[+] AnIdiotOnTheNet|5 years ago|reply
I've watched a lot of Jon's streams and stuff and I think "troll" is a mischaracterization. Trolls get a kick from getting people riled up, which definitely isn't the case with Jon.

He is often quite blunt though. He doesn't usually go out of his way to say things nicely and, being somewhat in the same boat, I think this is mostly because he's just sick of seeing the same bullshit over and over. It is frustrating.

[+] CodeGlitch|5 years ago|reply
He says it like it is - and has a critical mind which I suppose makes him come across as confrontational. A troll on the other hand goes out of their way to insult & shock, which I don't believe he does.
[+] jb1991|5 years ago|reply
I’ve noticed this as well. He is a very arrogant fellow and has no problem insulting people who do not deserve it.
[+] mikewarot|5 years ago|reply
At 22:00-ish, he claims software is riding on fast hardware, let's see if he's right.

Here is a challenge... can you join the 1 MIPS club?

Can YOU do useful work with 1,000,000 Instructions per second? A VAX 11/780 was enough compute power for a small academic department in the 1980s, and would have dozens of Terminals attached, with people doing real work. It was almost exactly 1 MIPS. Can you live within that constraint?

Let's make it easy, and assume I/O is as fast as modern hardware, and terminal/keyboard management isn't part of your 1 MIPS. (But SHOULD be counted, somehow)

Could you constrain yourself to fit in that box, yet still get work done?

Pick your favorite CPU, give yourself as much memory as you think is necessary, and chose how much disk space you think is enough. Then try to work within that box.

How would a web server in that environment fair?

[+] arexxbifs|5 years ago|reply
The thing is, our expectations on software has changed drastically since then [0].

With that said, I frequently do perfectly usable stuff on a 0.6 MIPS Amiga, in high level languages no less. I've even written a web server in ARexx, which is interpreted. Granted, it won't serve a whole lot of simultaneous users on an Amiga 500, but it works perfectly fine and even runs basic CGI stuff.

[0] https://datagubbe.se/small_efficient/

[+] meheleventyone|5 years ago|reply
Didn't someone run a web server on a ZX81?
[+] nukst|5 years ago|reply
What a great coincidence, I watched it yesterday because of that Plan9 post.

I couldn't recommend it more.

[+] dm319|5 years ago|reply
He has a really good point about civilisation. The collapse of civilisation is the norm - and the Egyptians and Ancient Greece/Rome were highly advanced - it is arrogance to assume that this cannot happen to ours.

He talks about simplification as a solution. I buy that - but he doesn't talk about education.

[+] dmortin|5 years ago|reply
I had time only to skim the video, but isn't it a responsibility of companies to hire people to learn and work on low level stuff?

If they pay those people and pay them well then there will be people working on those areas. If they only pay for software plumbers then obviously they will get more plumbers.

[+] crispyambulance|5 years ago|reply
> If they only pay for software plumbers then obviously they will get more plumbers.

They pay for plumbers(+). Seriously. Even intensely creative and curious folks must pretend to be plumbers in their workplaces to appease project management derps. The stuff that makes one have job satisfaction often gets done without asking for permission and without allocated time/staff/budget.

(+) Nothing against plumbers. Many have more lucrative and intellectually stimulating jobs than software engineers.

[+] grenoire|5 years ago|reply
This talk also ties in very strongly, albeit much more seriously, with the movie Idiocracy. I know, that gets brought up quite often, but the prospect of us 'forgetting' how to build and maintain the foundations of modern artifacts seems not so far-fetched anymore.
[+] keyle|5 years ago|reply
Yes and it reminds me of a recurring plot in sci-fi...

Visiting a civilization of extremely advanced beings who... 'maintain' a big machine that does everything for them; it solves safety, hunger etc. and let them lead a life mostly hedonistic.

Only very few know how to maintain the said machine... They themselves don't even understand how their ancestors built it; and if they were to disappear or the machine to be destroyed, the civilization falls as it has forgotten everything about keeping itself afloat.

In the modern world, most 'senior developers' are glorified plumbers.

It works, they don't know why.

So when it doesn't work, they don't know why.

We're becoming more maintainers and plumbers than creators at the cost of not understanding the sand under the castle.

[+] pygy_|5 years ago|reply
Crucial knowledge is gradually embedded in/embodied by industrial capital.

In parallel, we’ve been defunding schools and the healthcare system (in Europe, at least), because people just aren’t worth the expense.

Education professionals in their late 30s tell me that the attention span and abstract thinking abilities of children of all ages have drastically declined over the last 10 years. Screen time (including the parents’) is the most likely culprit.

We’re not scaremongering, this is really happening...

[+] azeirah|5 years ago|reply
It sounds similar in concept to how we have forgotten how to live in native environments. How many people here know how to survive in the tropical jungle without any modern technology for a month?

My guess would be less than 1/100000 of hn readers

[+] emsy|5 years ago|reply
It also happened several times in history, so it’s not without precedent.
[+] b0rsuk|5 years ago|reply
Also check out the book (not the movie) "Non-stop" by Brian Aldiss. The first 2/3 of the book is meh - uninteresting characters, motivations, a bit above average setting. Then it really takes off and you see the writer hasn't been wasting your time.

Also The Book of the New Sun by Gene Wolfe. It's much slower paced and more about the mood and immersion.

[+] erikbye|5 years ago|reply
It is false that we as an industry cannot make robust software. We have made lots of software I would classify robust. E.g., in aerospace (yes, there are always exceptions), defense, and automotive.

My washer's, dryer's, and oven's software has proven quite reliable, too.

[+] Jellyspice|5 years ago|reply
I don't understand the last part of the talk, how does simplification going to save our knowledge? Do you really need to simplify things? What about a training wheel environment where everyone builds their system from the ground up?
[+] mikewarot|5 years ago|reply
There are too many layers of abstraction. Each layer has real costs, even if you can't quantify them right now. The whole idea of signing code, for example... is just a response to the weakness of operating systems, not an actual need to run any given program.
[+] fallingfrog|5 years ago|reply
This argument, although I couldn’t articulate it as well, is why I think we should keep building particle accelerators even though the next one might not find anything new.
[+] lcall|5 years ago|reply
Going out on a limb here I know, but I think among the very most important things we can do are to be good to our families, and continuing to practice at honesty and treating others the way they would want to be treated. Those things seem essential for maintaining anything, long-term. (cf. the "Anna Karenina principle" ( https://en.wikipedia.org/wiki/Anna_karenina_principle ), for families or cultures that last across many generations.)

(Edit: to clarify that: Tolstoy said something like "All happy families are alike, and all miserable families are miserable in their own way". I think there is much to that: multigenerational unselfish service to others, in a widening circle, brings greater sustainability and peace. Seeing what families' and/or cultures' traits allow them to persist over time is interesting.)

From the political side of this (also relevant), things might seem distressing now, but it can be OK. Some more thoughts:

1) Honesty, the US Constitution, and the rule of law seem much more important than other policies, even ones we care about deeply (per some of my Church's scriptures, such as D&C98). Let's pray for our country/ies!

2) Jesus Christ said "love your enemies", & more ( https://churchofjesuschrist.org/study/scriptures/nt/matt/5.3... [churchofjesuschrist.org] ). (And: "By their fruits ye shall know them": Matt 7:11-21; and see D&C52: https://churchofjesuschrist.org/study/scriptures/dc-testamen... [churchofjesuschrist.org] .) This means treating others with respect, for starters, and the way you would want (or they would want) to be treated.

3) Please, along with seeking wisdom & kindness, let's try to get info and news from reliable, trustworthy sources. (Many; refs avail.)

4) Trust is earned by (trustworthy, good, uplifting) behavior over time, not just promises & piles of words.

5) We all can learn, help & encourage each other, grow & be better if we keep trying.

I deeply believe, with some reasons, that the US Constitution and some other good things will continue to be in place in the long run, in spite of difficulties.

[+] jessriedel|5 years ago|reply
Lots good and not so good about this talk. One error: he attributes lots of new abilities mostly to increased hardware speed, but, depending on how you measure, we seem to have seen roughly equal gains in software speed for basic problems. I think this would have been more obvious/avoided if he tried to be more quantitative with his claims.

https://www.overcomingbias.com/2013/06/why-does-hardware-gro...

[+] rado|5 years ago|reply
npm i prevent-collapse
[+] indy|5 years ago|reply
That will only work if you run it in a docker container managed by kubernetes. Luckily you'll be able to configure it through an Electron app. As I always say: "Who cares if it's simple as long as it's easy, besides hardware is powerful and we have lots of memory and disk space!"
[+] jdjfjtkfkf|5 years ago|reply
When I first saw this talk I thought he was exaggerating, but seeing the utter incompetence of the US pandemic response makes me think he is on to something.

And the political polarization in the country makes me wonder if US forgot how to do democracy.

[+] jansan|5 years ago|reply
Stopped after half of the talk, when he was talking about some Epic games. I thought this was broader, but his horizon seems to be the nerd and gamer world.
[+] altschuler|5 years ago|reply
There is only little game-specific in this talk. The Epic store was an example (out of many) of software failing on a daily basis.
[+] CodeGlitch|5 years ago|reply
Well he does work in that industry so obviously he's going to use references from the subjects he knows most about.

Nothing wrong with gaming as long as you play in moderation :)