6 ms·
I think that talk might be Jonathan Blow's most important work to date actually. I love The Braid and The Witness, but "Preventing the Collapse of Civilization"
by _hao 2y ago
I think that talk might be Jonathan Blow's most important work to date actually. I love The Braid and The Witness, but "Preventing the Collapse of Civilization" managed to articulate what at least me and my circle of devs have talked about and discussed for long time, but were never quite able to put into words. I'm very grateful for people like him and others like Casey Muratori, Mike Acton etc. who continue to point this out very real danger in the (at least) last decade.
Unfortunately my stance is that fundamentally things won't change until we get hit with some actual hardware limitations again. Most devs and people in general prefer a semblance of a working solution quickly for short-term gains rather than spending the actual time that's needed to create something of high quality that performs well and will work for the next 30 years. It's quite a sad state of affairs.
With that said I'm generally optimistic. There is a small niche community of people that does actually care about these things. Probably won't take over the world, but the light of wisdom won't be lost!
- bathtub365 2y agoOftentimes there isn’t a need for something to work for the next 30 years as the business will change in a much shorter timeframe and software exists to serve the business. While I agree that software quality varies wildly if the business can’t get off, the ground because the software isn’t ready, the software team will quickly stop existing with the rest of the business.
- 1dom 2y agoThe way I interpret the decline of software is that part of the problem is because more software has been written with the mentality that it doesn't need to last 30 years. It's a self-perpetuating issue: people build stuff saying "it won't/can't last 30 years" for various reasons (money, time, skill, resources, expectations, company culture, business landscape etc). So then software doesn't last 30 years for those same various reasons. The idea that we think systems did used to last longer is probably some survivor bias. However, software that has survived decades was probably created with a completely different set of methodologies, resources and incentives to modern software.
- BobbyTables2 2y agoPractically speaking, software should at least outlast one’s employment at a particular company. Writing bad code to just get past the next sprint or release is madness.
- naasking 2y agoWriting bad code for any reason is bad, the question is whether you can write good code to get the next release out. Or are you saying there's no such thing as good code that meets the next release' requirements?
- BobbyTables2 2y agoI think many people write sloppy code blindly thinking they won’t have to worry about it again.
- bigiain 2y agoThat's kinda the wo9ld business model of outsourced development teams...
- eastbound 2y agoLinux and Java has survived since 1995-1998, which is the dusk of times. We swap JS frameworks constantly, but when we’ll reach a good paradigm, we’ll stick with it. At one point, React might be the final framework, or rather, one of its descendants.
- renewedrebecca 2y agoOr just throw modern web app development with its insane ways of trying to work around the fast that JS is a broken paradigm and start over. Develop a good vm that can either be part of the browser or can be easily launched from it and get all of the browser/OS makers on the same page. We only have what we have because of a lack of real leadership.
- karmakaze 2y agoThere are many large companies running Cobol programs in production that wished software didn't last 30 years.
- MonkeyClub 2y agoTheir prospective replacements didn't last the rewrite, though.
- _cenw 2y agoThat is untrue for almost all software written outside of companies who's primary product is tech or software. I work for a publisher and while there's a ton of disposable microsites and project work (that nobody ever cleans up or documents, so you never know if it's okay to remove), there's also ancient monoliths written in forgotten programming languages that are so important for production and have so many hidden dependencies and unknown users ("random FTP server" being my favorite), that you can barely put on new paint. I'm writing software with the assumption that it'll be used for at least 30 years there, with a lot of guard rails and transparency/observability mechanisms, because I know the next person working there will thank me.
- dijit 2y agoI don’t mind this philosophy, but in aggregate I think very slow applications that are cumbersome and widely deployed have cost humanity many human lifetimes because a handful of developers were not able (or not given the opportunity) to optimise them even a little. I am aware that capitalism essentially dictates externalising cost as much as possible, but with software- much for the same reason capitalism loves it (a copy is cheap and can be sold at full price despite being constructed just once) means that these externalities can scale exponentially. Teams in particular is an outlier as in most cases it is essentially forced on people.
- Wolfenstein98k 2y agoVery shallow definition of "capitalism". It doesn't dictate externalising cost as much as possible unless you have a very short-term view. Short-term view businesses get eaten pretty quickly in a free capitalist system. People forget that half of capitalism's advantage is the "creative destruction" part - if businesses are allowed to fail, capitalism works well and creates net value.
- cassianoleal 2y agoWhat defines a "free capitalist system", and where does it exist?
- dinkumthinkum 2y agoIt’s interesting that all three of the people you mention are very concerned with performance, something most programmers don’t even think about anymore or think they aren’t supposed to.
- FridgeSeal 2y agoAs a group, we have trained many, many programmers out of even considering performance with the proliferation of quotes like “premature optimisation is the root of all evil” ands ideas like “who cares, just get a faster computer/wait for hardware”. Premature optimisation is bad, but there’s now so many devs who don’t do _any _ at all. They don’t improve any existing code, they’re not writing software that is amenable to later optimisation, inefficient architectures and unnecessary busywork abounds. Are we surprised that years of “product first, bug fixes later, performance almost never” has left us with an ecosystem that is a disaster?
- anymouse123456 2y agoAs someone who used to quote this quote, I've come to believe this one line has caused nearly as much damage as the invention of NULL.
- _hao 2y agoYes, people think that writing performant software is something that's nice-to-have when in fact if you program with the intention of things being performant then that branches out to better overall design, better user experience, better quality etc. It means you actually care about what you're doing. Most people don't care and the results are apparent. We're surrounded by waste everywhere. Bad software wastes resources like money, electricity and most importantly - time. The fact that people don't stay long enough in companies or work on a long project themselves to see the fruits of their labour down the line is a point that is discussed in some of the other comments here in this thread. I agree with it as well. In general if you job hop a lot you won't see the after effects of your actions. And the industry is such that if you want to get paid, you need to move. To reiterate - it's a sad state of affairs.
- cageface 2y agoYou can get all the software quality you want if you're willing to pay for it. Users have now been taught that $10 is a lot to pay for an app and the result is a lot of buggy, slow software.
- 0dayz 2y agoThe problem is that we generally don't have anyone a good track record of what good software is valued at, it USED to around 300-500$ and with companies being incentivized to go subscription based who knows intuitively what that is.
- dartos 2y agoWe’ve also taught users that extremely expensive software like SAP and Blackboard are also crap (at least from an end users perspective)
- 59nadir 2y agoI work in a two man team making software that is 500-1000 times faster than the competition and we sell it at ~40% of their price. Granted, this is in a niche market but I would be very careful in stating price/costs are the entire picture here. Most developers, even if you suddenly made performance a priority (not even top priority, mind you), wouldn't know how to actually achieve much of anything. Realistically only about 5% or so of my former colleagues could take on performance as a priority even if you said to them that they shouldn't do outright wasteful things and just try to minimize slowness instead of optimizing, because their entire careers have been spent optimizing only for programmer satisfaction (and no, this does not intrinsically mean "simplicity", they are orthogonal).