9 ms·
Jonathan Blow – Preventing the Collapse of Civilization
- jdjfjtkfkf 6y agoWhen 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.
- triska 6y agoThis 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 6y agoI 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 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 6y ago> 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.
- grenoire 6y agoThis 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 6y agoYes 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.
- yetihehe 6y agoIt's also because our systems are more and more complicated. This is neatly pointed out in "Who knows how to make a computer mouse?" [0] TED Talk. [0] https://www.youtube.com/watch?v=DTLizne1uNw https://www.youtube.com/watch?v=DTLizne1uNw
- keyle 6y agoAgreed, and because a lot of the existing tech underneath has simply been agreed upon as "good enough".
- segfaultbuserr 6y agoOne Ken Shirriff's comment on reverse engineering CPUs makes a good point on system complexity. > For future reverse-engineering, I think the biggest problem will be imaging. I can study processors up to about 1980 with an inexpensive microscope. But chips with two layers (or more) of metal are much harder to examine, because the metal layers block each other. And once transistors get too small for optical microscopes (1990s), you need an electron microscope, which is a much bigger investment. (Although there are hobbyists who have one.) > The other factor is understanding. A chip like the Z-80 is simple enough that one person can understand it completely. I doubt any single person at Intel understands everything about the Xeon, since it is so complex. And it's much harder to understand the chip from reverse engineering.
- jansan 6y agoStopped 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 6y agoThere 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 6y agoWell 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 :)
- ivanbakel 6y agoPrevious discussion: https://news.ycombinator.com/item?id=19945452 https://news.ycombinator.com/item?id=19945452
- nukst 6y agoWhat a great coincidence, I watched it yesterday because of that Plan9 post. I couldn't recommend it more.
- arexxbifs 6y agoHe'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-uptime-achievement-can-you-beat-16-years/ https://arstechnica.com/information-technology/2013/03/epic-...
- ziaddotcom 6y agoIn 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).
- jessriedel 6y agoLots 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-grow-like-algorithms.html https://www.overcomingbias.com/2013/06/why-does-hardware-gro...
- dmortin 6y agoI 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 6y ago> 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.
- rado 6y agonpm i prevent-collapse
- indy 6y agoThat 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!"
- rimher 6y agoHe 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
- CodeGlitch 6y agoHe 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.
- dm319 6y agoJust to expand on your definition of a troll, as someone who grew up in the 90s and met a lot of them on usenet. The common theme I found with them was being able to carefully phrase a comment or question to maximally elicit a response. They often weren't consistent in their arguments over time - instead crafting their argument to most elicit an emotional response in the reader so that they were compelled to reply.
- AnIdiotOnTheNet 6y agoI'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.
- jb1991 6y agoI’ve noticed this as well. He is a very arrogant fellow and has no problem insulting people who do not deserve it.
- emsy 6y agoWhen 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.
- betareduce 6y agoFabien Senglard made a similar point [0] [0] https://fabiensanglard.net/silicone/index.html https://fabiensanglard.net/silicone/index.html
- alpaca128 6y ago> 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.
- UncleMeat 6y ago> Visual Studio Code is about changing individual bytes in tiny plain text files. Only if you are being amazingly reductive. VSCode is about changing desirable sequences of bytes into more desirable sequences of bytes, where the definition of "desirable" is stupendously complex and depends on state that exists on many other computers around the world. If you just want to change bytes you can open notepad or nano and watch as they boot instantly. VSCode is much closer to Eclipse than nano in its capabilities. > And the most baffling thing to me is that such things are so widely accepted. To me I think about things like screen refresh rate or keyboard latency. Some people demand 120hz or incredibly low keyboard latency. But I'd wager that the percentage of people who care about such things are a rounding error. Even among hardcore gaming enthusiasts, optimal fps has only doubled over the past three decades. So there is way more real time to do stuff, and developers fill that time! They might fill it with features or they might fill it with lower development costs.
- Zhyl 6y agoTo 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.
- UncleMeat 6y ago> 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.
- Zhyl 6y agoWould you be able to comment on the examples from the talk?
- erikbye 6y agoIt 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.
- fallingfrog 6y agoThis 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.
- dm319 6y agoHe 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.
- mikewarot 6y agoAt 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 6y agoThe 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/ https://datagubbe.se/small_efficient/
- meheleventyone 6y agoDidn't someone run a web server on a ZX81?
- aYsY4dDQ2NrcNzA 6y agoWell, kinda. https://hackaday.com/2016/11/23/zx81-connects-to-the-network/ https://hackaday.com/2016/11/23/zx81-connects-to-the-network...
- Jellyspice 6y agoI 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 6y agoThere 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.
- lcall 6y agoGoing 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 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-10,44 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-testament/dc/52.14-19#11 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.