top | item 32613574

Jonathan Blow on Societal Collapse (2019)

104 points| beefman | 3 years ago |gist.github.com | reply

146 comments

order
[+] westoncb|3 years ago|reply
Controversial—I know—(and I'm happy to hear counterarguments) but I think there's a much simpler way of accounting for the present state of software quality.

It amounts to 'tolerance'. Commercial software is optimized with respect to a set of business goals, and one dimension of the space that process operates on is software quality. Beyond a certain threshold, increasing quality has diminishing utility. (I.e. there's effectively a tolerance for quality; it can be imperfect and not change the operation of the machine—i.e. business—which it's a component of.)

The present state of software is precisely in the neighborhood of where that added utility begins rapidly diminishing.

(This assumes that the business in question is competent, which we can approximate by observing that they survive. Outside the possibility of that being incorrect, this implies that the level of software quality hovers right around where it it's good enough that improving it more wouldn't significantly impact customer purchasing decisions. Of course this is not an ideal state of affairs—but how could you expect otherwise? —and interpreting it as a sign of societal collapse... seems a bit absurd to me.)

[+] johnfn|3 years ago|reply
As soon as Blow and others start pontificating about how modern software is terrible, I get frustrated; my viewpoint differs with theirs so drastically that I don't even know where to begin.

I might start somewhere around here: I think the fact that modern software is "terrible" is actually a sign of the dramatic success, not failure, of programming.

The reasons that Blow et all normally cite as why software is terrible are usually that, 20 and 30 years ago, engineers were able to pull off superhuman feats compared to the engineers of today. I accept this unquestionably. They wrote software that ran quicker and was more space-efficient than modern software. But running software that fit in kilobytes of RAM was never the goal of software engineering. The goal was providing value to your users.

Blow et. al. seem to think that efficient software is the goal. I couldn't disagree more. The goal is always to produce things that users can actually use. And if that means doing hideously inefficient things, like running your app inside a chrome shell, so be it, if that means you delivered value faster.

And the amount of engineering effort per unit of value created has gone down so much today compared to 30 years ago.

In the past, engineers could squander days or weeks trying to make code more memory efficient, or finding the exact right sequence of ASM instructions to waste less CPU cycles. These are issues I don't even have to think about. Heck, I can do extremely stupid and inefficient things, like use a garbage collector, or electron, and for the most part, users don't even care[1]. What an incredible success!

Essentially, I think what Blow is seeing when he cites the demise of modern software engineering is in fact that the bar to writing usable software has dropped immensely. I can understand why this is a frustrating thing for him, because it effectively means that his skillset is not as valuable as it used to be. But I just can't agree at all. How amazing that we can be so wasteful and yet still produce such great software, and furthermore what an incredible success that engineers like me don't need to even think about ASM and RAM efficiency.

[1] Yes, some users do care, and I think that a disproportionate majority of them hang out on Hacker News. :P

[+] bmitc|3 years ago|reply
> Commercial software is optimized with respect to a set of business goals

I'm not sure that's entirely true. It ostensibly is, but the way it is written is not optimized for long-term business goals. Because the way software tools work and the way software is written is that it is all completely optimized for short-term business goals and results.

I'm trying to pen an article that addresses this, because software is often if not solely viewed as just doing something, when that's only a component of what it does. If we additionally view it as a way to communicate amongst humans and a way to think about and encode a domain, then we begin to see the failings of software in today's world. In this holistic viewpoint, software is best viewed as stored and interactive knowledge. If software is simply viewed as a way to do something, then the stored knowledge becomes highly implicit and incomplete, and a communication breakdown happens. Viewing things with this lens, it is no surprise why today's software is primarily towers of shit. There is no handling of variety, that is complexity, because the way to handle it is to properly communicate within the medium of software systems and encode the domain. Otherwise, software just doing something often creates more complexity than it reduces.

[+] routerl|3 years ago|reply
This is a fascinating point and it really makes me think of the mechanical analogy: different mechanical engineers can provide different levels of tolerance (i.e. precision), depending on their training and experience. You wouldn't hire an F1 engineer to design retail automobile machining, because both the hire and the machining process would be overkill.

The software industry is stuck in this rut where everyone acts as if they're designing F1 cars, but few teams outside of FAANG actually are. In other words, for the majority of software jobs, a bootcamp and CRUD experience is likely enough.

[+] tgbugs|3 years ago|reply
If this is the case then it means that there is no competition in the ecosystem and that the regulators need to start busting monopolies and other anticompetitive behavior.

In a competitive market where there is actually free entry and free exit and consumers are not locked in there should be no such thing as diminishing returns at the level of brokenness we see here, unless we somehow think that writing functioning software is somehow impossibly difficult.

[+] swivelmaster|3 years ago|reply
I would argue that the decline in software quality is related to the rise of SaaS coupled with Product Manager-driven development. If a product is generating consistent revenue, resources are devoted to expanding that revenue. It's extraordinarily difficult to justify bugfixes and incremental improvements using exclusively analytics data, so organizations are generally not incentivized to reward that kind of activity.
[+] annoyingnoob|3 years ago|reply
> The present state of software is precisely in the neighborhood of where that added utility begins rapidly diminishing.

I can think of several commercial software offerings where quality is and always has been lacking. Quickbooks is one example, it has been extremely buggy the entire time it has been a product. Yet, lots of people still buy it and use it.

[+] bigbillheck|3 years ago|reply
As far as I can tell, 'software quality' these days is pretty good, all things considered, as compared to twenty or thirty years ago.
[+] scrollaway|3 years ago|reply
I quite like Jonathan Blow. I think the talk mentioned in this post is kind of poor though, I remember watching it a couple of years ago in its full context (https://www.youtube.com/watch?v=ZSRHeXYDLko). IIRC it had a bit of a "kids these days" / "they don't make 'em like they used to" feel to it. It's not untrue, but it doesn't really explain anything.

IMO, a MUCH BETTER version of a similar point was outlined by Bert Hubert in this article:

https://berthub.eu/articles/posts/how-tech-loses-out/ - How Tech Loses Out over at Companies, Countries and Continents (Video version: https://www.youtube.com/watch?v=PQccNdwm8Tw)

In short, this goes beyond software; it's in general about why the incentives around specialization and outsourcing/offshoring cause innovation and expertise to die out. Bert Hubert takes the example of toasters, but it's of course very generalizable:

> The problem is that this is not just a toaster problem. This is a continental problem. All over Europe, this is happening simultaneously, where we’re saying, look, we’re not that much into actually building things anymore.

> So we’re just getting everyone else to build stuff for us. [...] We’re just thinking about things and then telling some other people how to do their stuff.

> In the end, you cannot survive if all you create is intellectual property.

[+] onlyrealcuzzo|3 years ago|reply
> In the end, you cannot survive if all you create is intellectual property.

Why not?

Anyone can do. Doing the right stuff is what matters.

If you're unwilling to do (Europe, generally), and you can't even come up with good things that need done anymore, that seems like a problem. I don't think Europe is there.

I would argue it's a bigger problem to be focused too much on doing, and not focused enough on direction.

You can probably make a convincing argument that direction is random, and no one is good at setting it, but people at least believe other people can do this - and IP / ideas are currently where the money is.

Like, is Apple's IP actually valuable? Who cares. It makes a ton of money.

Anyone can put together their phones.

[+] labrador|3 years ago|reply
Anders Hejlsberg explains in the link below that for decades much of computer science was concerned with strict typing as a tool to ensure program correctness. As the consequences of incorrect code have declined - you're unlikely to crash the browser much less the machine with bad JavaScript - the opportunities to explore flexible and more expressive typing have increased. I know younger programmers who don't even bother to check for errors. This is shocking to me as an older programmer. I wonder if this is a factor for the decline in software quality Jonathan Blow talks about in his video. If so, we need to find a way to encourage programmers not to be lazy about errors. The Blue Screen of Death used to be all the encouragement I needed.

Typescript - Type System explained from Anders Hejlsberg - creator of Typescript

https://www.youtube.com/watch?v=AvV3GIDeLfo

[+] bigbillheck|3 years ago|reply
> I know younger programmers who don't even bother to check for errors

The older programmers of today were once young, and many of them didn't bother to check for errors back then.

[+] hayley-patton|3 years ago|reply
> I wonder if this is a factor for the decline in software quality Jonathan Blow talks about in his video.

Wouldn't hold my breath; I recall a tangent on programmers being "afraid of pointers". Depending on your favourite not-C-pointer way of managing memory, that's saying that use-after-free bugs are a sign of bad programmers, or shunning substructural/region/etc types for verifying that explicit memory management is correct.

[+] voxl|3 years ago|reply
No one has stopped studying strict types, they are alive and well
[+] stephc_int13|3 years ago|reply
His style in unconventional to say the least, and you can straw man his talks in hundreds different ways, nitpicking the numerous weaknesses.

But, in my opinion, that would be missing the point.

The point is not on being rock-solid, I find this type of risky rants refreshing and thought provoking, and there are many good/interesting things there.

[+] dang|3 years ago|reply
Related:

Johnathan Blow on Software and Preventing the Collapse of Civilization - https://news.ycombinator.com/item?id=32080927 - July 2022 (1 comment)

Jonathan Blow – Preventing the Collapse of Civilization - https://news.ycombinator.com/item?id=25788317 - Jan 2021 (94 comments)

Preventing the Collapse of Civilization / Jonathan Blow [video] - https://news.ycombinator.com/item?id=24662990 - Oct 2020 (4 comments)

Jonathan Blow – Preventing the Collapse of Civilization - https://news.ycombinator.com/item?id=19965908 - May 2019 (2 comments)

Jonathan Blow – Preventing the Collapse of Civilization [video] - https://news.ycombinator.com/item?id=19950860 - May 2019 (2 comments)

Preventing the Collapse of Civilization [video] - https://news.ycombinator.com/item?id=19945452 - May 2019 (116 comments)

[+] RockRobotRock|3 years ago|reply
I really can't believe how much of an arrogant blowhard (pun intended) he is sometimes. 95% of the things coming out of his mouth are negative, cynical, and self aggrandizing. He has some good points, sure, but I really just can't get past his personality.
[+] kelnos|3 years ago|reply
That was kind of my reaction as well, though perhaps not quite so negative.

It's fine that he has these sorts of opinions. I might have some opinions about this topic, and I might write a blog post or something about it. But I would expect others to tear my arguments apart, because I -- just like Jonathan Blow -- don't really have the expertise or background to properly evaluate something like this.

In reality, though, my opinion would barely be noticed, because I'm just some random person on the internet. Blow is a fairly well-recognized figure, but that doesn't mean we should give greater weight to his opinions on things that are well outside his expertise to evaluate.

[+] rglover|3 years ago|reply
So...the typical Hacker News user?
[+] lkrubner|3 years ago|reply
Part of me wants to write a point by point rebuttal of this, but I’m not sure it would be useful. There are many, many assumptions in this work that would have to be teased apart before the good ideas here could be discussed on their own.

I’ll limit myself to a comment about his comment regarding the end of the Soviet Union, quoting from a long essay I wrote last year, comparing the crisis in the Soviet Union to the global crisis:

————

If you think two things are completely separate, and yet they change at the same time and in the same way, then you need stop and ask yourself why were you so confident that they were completely separate?

https://demodexio.substack.com/p/the-struggle-to-save-the-so...

[+] Litost|3 years ago|reply
As someone with more than a passing interest in Societal Collapse, but without time to watch the video right now, how does Blow's talk stack up against say The Great Simplification series by Nate Hagens [1], Joseph Tainter [2] or any of the many authors contributing to this field as referenced in this Nodes of Persisting Complexity paper [3]?

[1] https://www.thegreatsimplification.com/episodes

[2] https://scholar.google.com/citations?user=sbEDS84AAAAJ

[3] https://www.mdpi.com/2071-1050/13/15/8161/htm

[+] akkartik|3 years ago|reply
What's the answer? The post tapered off with a long quote, unless I'm missing something by having js turned off..
[+] BirAdam|3 years ago|reply
I didn’t care too much for the article, but it made me think. I think about civilizational collapse quite a bit, and mostly due to loving history and strategy games.

A large collapse could happen, but as far as I can reason it out, it won’t be anything close to the scale of collapse that the Bronze Age collapse was. There are multiple reasons for this.

First, at the end of the Bronze Age, writing existed but it wasn’t everywhere all the time. Writing is now everywhere all the time, and most humans can read and write. This means that, in a collapse, most people can carry on knowledge. The level of death required to create a true dark age (like that following BAC or the fall of Rome) would be on such a scale that I cannot think of something other than global thermo-nuclear war causing it.

Second, even in the Bronze Age natural disasters weren’t enough. You had to have disasters plus invasion by the sea people. That wouldn’t work well now since surveillance is good. Any nation would now if masses of humans were on their way to attack.

Last thing, if software had gotten worse, I figure my computer wouldn’t start at all considering I had to reboot computers just as part of normal usage through the 80s and 90s. I also had to obsessively save everything all the time because a random crash was normal. Take off the nostalgia goggles.

[+] rebelos|3 years ago|reply
> People will complain all day long about the total incompetence or even criminal nature of every human government in recorded history, but when it comes to the prospect of an entity with hypothetically superior intelligence taking over, they want to prevent it!

This reductive drivel at the very end of the post nullified any credibility the author may have had.

[+] bee_rider|3 years ago|reply
The apparent claim that he is the only one who's put any effort into measuring world GDP also stretched believably.
[+] joe_the_user|3 years ago|reply
I can't actually find that statement in the video but if he said that, I'd say it's brilliant.

The thing about the "AI safety" nerds is ... if some vast corporate entity were to create a truly god-like computer program, whether the program escapes the control of its masters is a problem for the corporate entity but just fact of thing being created and being in the hands of this entity would be the problem everyone else would face.

And more broadly, if we haven't done much about the general sickness of society, what chance should we expect against a final problem of this beyond-human-control AI.

Bad "reductionism" points toward too simplistic solution. Good "reductionism" debunks bad but supposedly-sophisticated solutions. This is Good reductionism imo.

[+] zeroq|3 years ago|reply
This hits close to home.

On one hand, I completely agree with Jonathan.

I started my career 20 years ago in games dev and digital advertisement which were strangely close to each other at that time. When I work with developers today who need an external library to check if a number is odd it's terribly frustrating. There are certain techniques like working with binary formats, that were taken for granted even at junior level when I started that seems like a rocket science these days.

When I share my gripes with fellow managers they often joke if I would be a developer on their team and came up with one of my "optimal" ideas they would fire me on the spot, because such solution would be too convoluted and obscure for todays standards and not maintainable.

On the other hand I completely understand that the software industry shifted a lot since I started and now every bussiness is an IT company. This creates a lot of demand on the market and someone has to push these deliverables somehow. And despite what business stake holders will tell you, world won't collapse if these applications cracks in few spots if you'll be able to ship them before competition. People will still continue to use LinkedIn even if it takes 7 seconds to gain interactive on my phone.

Jonathan comes from a different background and his views may seem radical for someone working in an ordinary IT company, but even the game dev industry shifted in that direction. Back when games were released on CDs and you couldn't assume that every user will have a constant access to the internet it was absolutely crucial to make sure that the game will work on day one. But that's no longer the case. Companies like CD Project proved that you can ship a broken build on day one and keep releasing patches months and months after premiere.

I mean, it's embarrassing that GTA V required 5 minutes to parse a simple JSON file for 7 years, but the game sold in 170 million copies regardless.

[+] strangeattractr|3 years ago|reply
> I mean, it's embarrassing that GTA V required 5 minutes to parse a simple JSON file for 7 years, but the game sold in 170 million copies regardless.

It's because the game was good enough in spite of the tedious load times. I feel like devs often forget the fact that the computer is a black box to 99.9% of users. They don't care about how fast the game should parse JSON, they don't even know what JSON is. They only care about total load time relative to the enjoyment they get from the game.

[+] tstrimple|3 years ago|reply
> “The children now love luxury; they have bad manners, contempt for authority; they show disrespect for elders and love chatter in place of exercise. Children are now tyrants, not the servants of their households. They no longer rise when elders enter the room.“

> ~ Socrates

I wonder if we will have a generation without these doomsayers. Every generation there are claims that everything is falling apart and not as good as it used to be. Literally every single one. Yet society continues to advance and move forward regardless. Maybe it’s time we start ignoring the curmudgeons despite their successes when they were still relevant.

The kids are alright. Yes, even the ones who use TikTok.

[+] nightski|3 years ago|reply
I don't particularly agree with Mr. Blow, but to dismiss wisdom is folly.
[+] plaguepilled|3 years ago|reply
I remember Jonathan Blow all the way back when the Indie Game movie came out. Shame he hasn't matured since then - or learnt how to actually formulate an argument.
[+] np_tedious|3 years ago|reply
Yep. He obviously touches on interesting concepts and I feel like he has decent things to say. But this is just way too disjointed for me to get much out of it
[+] adamrezich|3 years ago|reply
there's a few religious/historical assertions in there (this piece, not the talk itself, which I recommend without reservation) that are pretty contentious for various thorny reasons but are kind of just presented off-handedly as fact.
[+] joe-collins|3 years ago|reply
Jonathan Blow made a couple of neat video games.

He also tweeted this while wrapping up development on The Witness. https://web.archive.org/web/20160318053101/https://twitter.c...

Whatever the actual contents of the bottle, its intended interpretation is obvious, and it features in the secret ending video to that game.

He's a clever designer, but I'm not going to accuse him of being a well-grounded individual.

[+] jiggawatts|3 years ago|reply
With no references, not even hyperlinks to most of the Wikipedia articles that are mentioned in the text..
[+] ChrisMarshallNY|3 years ago|reply
I quite like the direction that modern software is taking, but I also think there are endemic quality issues. Some of these issues are pretty bad, but I also think that things are improving.

Big goals need big tools. Can’t be helped. Lots of layers, moving parts, infrastructure, and complexity.

I feel that we are still in adolescence, in handling this stuff. I think that there will be some reckonings, and am confident that we’ll stabilize.

I don’t have all the answers. I do have a few, for my small corner, but I’m not sure they would scale particularly well.

[+] yomkippur|3 years ago|reply

[deleted]

[+] krapp|3 years ago|reply
We already live in a surveillance hellhole so I welcome open season on billionaires.

Also, if you make a habit of hostile edits like that you're going to be banned.

[+] GameOfKnowing|3 years ago|reply
Legitimate question— is the guy’s name really Jo Blow, or is that a joke?