andrewkelley-me-jlnnop.txt (14973B)
1 [1]Andrew Kelley - Why We Can't Have Nice Software (2024 Feb 04) 2 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3 4 Why We Can't Have Nice Software 5 6 The problem with software is that it's too powerful. It creates so much wealth 7 so fast that it's virtually impossible to not distribute it. 8 9 Think about it: sure, it takes a while to make useful software. But then you 10 make it, and then it's done. It keeps working with no maintenance whatsoever, 11 and just a trickle of electricity to run it. 12 13 Immediately, this poses a problem: how can a small number of people keep all 14 that wealth for themselves, and not let it escape in the dirty, dirty fingers 15 of the general populace? 16 17 This is a question that the music industry faced head-on, and they came up with 18 EULAs, enforced via the state's monopoly on violence, and DRM, a way for 19 software to act antagonistically against its own users. Software can do useful 20 things like encode media into bits, and then copy those bits. That's 21 dangerously useful, and it had to be stopped. 22 23 The True Cause of Bitrot 24 25 What about bitrot, you say? It takes ongoing maintenance to keep software 26 working, doesn't it? 27 28 Let's think critically about bitrot for a moment because, as a reminder, bits 29 don't actually rot - that's kinda the point of bits. In the best case scenario, 30 bitrot happens due to progress - perhaps a dependency has made improvements but 31 requires breaking API compatibility, or better hardware comes out and the 32 software needs to be recompiled for that hardware. In this case, it's kind of a 33 happy outcome. Some labor is needed to enhance the software in response, but 34 then, once again, it's done; ripples disappearing from the surface of a lake 35 hours after a stone is thrown into it. 36 37 The darker side of bitrot is due to businesses trying to make more profit than 38 last year, and launching marketing initiatives. For example, Microsoft shipped 39 a Windows Update that puts advertisements into the start menu, advertisements 40 into the task bar, and changed the control panel's user interface to unify it 41 with their business incentives - namely a superficial makeover to justify 42 customers paying additional money for what is effectively worse software - it 43 has new bugs and is now ridden with advertisements. This caused a bunch of 44 churn in their own codebase, as well as other software trying to use native 45 user interfaces on Windows. 46 47 It's all so incredibly wasteful. And that's the point, isn't it? 48 49 The programmers at Microsoft could have done less work, or worked on bug fixes 50 instead. The UI designers could have done less work, or tweaked their existing 51 design instead of making a new one. The managers could have done less work. 52 Customers could have paid little to no additional money for a Windows Update. 53 This all would have culminated in a more robust version of Windows that 54 customers preferred, instead of one that is effectively boycotted like Vista 55 and Windows 11. 56 57 It's actually a problem that software is too efficient and has this nasty 58 tendency of being completed. Software offers us a glimpse into a post-scarcity 59 society, but it is being actively sabotaged by those who seek to turn a profit. 60 61 Platform Waste 62 63 Consumers love standards. Standards allow multiple parties, perhaps even 64 competitors, perhaps especially competitors, to have interchangeable components 65 with each other, which gives consumers options, and negotiation power. 66 67 For-profit companies hate standards. They would rather have their own special 68 cable, for example, that only works for their devices, and only they are 69 allowed to manufacture them. To be more specific, underdog companies like 70 standards because it lets them compete. The established players don't want to 71 have to play fair. 72 73 You can see this playing out right now with the [2]EU formally adopting a law 74 requiring Apple to support USB-C chargers. At the time of writing there is no 75 such law in the United States, but it is [3]being discussed by politicians. 76 77 Standards allow software to be more efficient. By sticking with a standard for 78 a period of time and then coordinating an upgrade to a newer one, software 79 churn is minimized, resulting in a fixed amount of software development labor 80 needed. 81 82 On the other hand, without a standard, for-profit companies are incentivized to 83 fiddle with their product in a wasteful manner. For example, Apple has in the 84 past made insignificant changes to their charging cable, making it not 85 compatible with the one from the previous year. This resulted in more profit 86 for Apple since consumers found their existing cables useless and had to buy 87 new ones. Ultimately this resulted in more money being spent in the economy, 88 increasing the country's GDP. Economists rejoice; the Earth weeps. 89 90 Think about how many messaging apps have come and go and how much programmer 91 hours have been wasted on them. We almost had XMPP be mainstream, but then 92 Google outgrew their "don't be evil" diaper and put on their "make profit" big 93 boy pants. If your goal is to turn a profit, it's obviously the correct choice 94 to invest into a platform that you own. So then we got a half-dozen buggy 95 messaging apps from Google that didn't even work with each other, let alone 96 Apple's platform or the other contemporary players. 97 98 The new hotness is Discord, which is already starting, predictably, [4]to decay 99 . I can't believe a human sat down and wasted hours of their life coding "super 100 reactions". It's not something that really needed to happen. 101 102 Imagine if all these programmer hours spent on all these products actually 103 centered around a proper standard, which evolved along with consumers' needs 104 rather than these companies' ongoing need to fiddle with the knobs and sliders 105 until profit comes out. The thing is, if this actually happened, then what 106 would these employees spend their time on? At some point society would be 107 pretty much done implementing messaging software. Messaging app updates would 108 be rare, and bugs in messaging apps would be rare. We would reach peak 109 messaging. 110 111 Peak Dishwasher 112 113 Decades ago, we already did it. We reached peak dishwasher. Dishwashers 114 achieved perfection, and it was no longer possible to improve them. The 115 mechanics were optimal, the user interface was ideal, and consumers had no 116 desire for any changes. 117 118 One would, naively, think of this as an accomplishment. But how is a company 119 supposed to make more profit than last year? By any means necessary, of course. 120 121 They invented these dishwasher detergent pods that are actually a downgrade - 122 slightly more time consuming to use than powder, more expensive to manufacture 123 and purchase, worse for the environment, and most offensive of all - actively 124 sabotage the dishwasher's prewash feature making the product actually function 125 worse than before! 126 127 And from a business perspective, it is a critical success. They found a way to 128 make consumers spend more money on dishwashing. The line goes up, for one more 129 year. But it's not enough. It has to go up every year. What else can we do? 130 131 I found myself in a position where I needed to buy a new dishwasher last month, 132 and, already being aware of this problem, did my very best to buy one that 133 worked well. I picked one that had 5/5 stars on Consumer Reports. 134 Unfortunately, the dishwasher that I ended up with is my worst nightmare. 135 136 It takes 30 seconds to boot up, presumably because of the Bluetooth and WiFi 137 driver in it. Many of the configuration options are hidden behind a proprietary 138 app. The buttons are hidden and touch based instead of being visible and 139 depressing with natural tactile feedback. I still haven't yet done the chore of 140 going into my router and disabling it from accessing the Internet. I had to 141 give it access to use the app to find out why it was broken. Until I do that 142 chore, there's a chance it could auto update and have a firmware bug and stop 143 working, or just waste my bandwidth. Who knows what it's up to? 144 145 Meanwhile, I had to call a repair technician to fix the door latch already, as 146 well as the soap dispenser latch. Both things have since failed to work 147 properly again and I still need to do the chore of calling the company to get a 148 repair done a third time. 149 150 Before we moved, we had an older dishwasher that worked perfectly. No Internet, 151 no Bluetooth, and the door latches worked flawlessly through thousands of runs. 152 153 The problem with the requirement for each year to be more profitable than the 154 last is that once you reach the peak, once it's not possible to actually 155 improve your product any more, you still have to change something. Since you 156 can't change it to make it better, you therefore will change it to make it 157 worse. 158 159 What Blockchains and LLMs Have in Common 160 161 Plenty of people roll their eyes at blockchain being the new buzzword, or about 162 how tech is overobsessed with AI (LLMs) right now. It's easy to chock it up to 163 it being a silly, harmless fad perpetuated by uneducated or misguided people, 164 but in reality it's a lot more intentional than that. 165 166 Most tech workers work 40 hours per week at some company. That's a lot of 167 collective hours spent on something. What factors go into deciding, as a whole, 168 what that effort is spent on? Employees have some choices in the matter, but in 169 the end those choices are limited to job offers. Job offers are created by the 170 owners of companies who decide what they want to invest their money into. 171 172 In other words, venture capitalists decide what is the current hotness 173 precisely by directing large amounts of labor towards whatever they want. 174 Empirically, VCs are primarily motivated by seeking a return on investment. The 175 goal is to turn a big sum of money into an even bigger sum of money. In theory, 176 this is because with an even bigger sum of money, you can then start to spend 177 that money on directing an even larger amount of labor towards whatever you 178 want, bypassing democracy to influence the future of humanity, but in practice, 179 most VCs get fixated on that return on investment until they die. 180 181 If you were to criticize blockchain technology from a purely technical 182 perspective, you might point out the flaw that proof of work requires an 183 exponentially increasing amount of computational power, and thus electricity, 184 in order to keep the blockchain database alive over time. You might point out 185 how inefficient of a database it is. But you would be missing the point. 186 Blockchain technology excites investors precisely because of how wasteful it is 187 . Even if we had fusion (!!) it would eat up all that energy and more. It's 188 difficult to express the magnitude of how wasteful this is, and the fact that 189 it's built into the system intentionally is sinister. 190 191 Blockchain technology is a kind of software that doesn't get completed or 192 perfected. Rather it's the opposite; the longer it is in existence the more 193 work it creates for everyone to do. The waste is a feature; it's how the [5] 194 line goes up. 195 196 Reminds me of this scene in The Fifth Element where Zorg says: 197 198 Life, which you so nobly serve, comes from destruction, disorder, and 199 chaos. Now take this empty glass. Here it is: peaceful, serene, boring. But 200 if it is destroyed... look at all these little things! So busy now. Notice 201 how each one of them is useful. What a lovely ballet ensues, so full of 202 form and color. Now, think about all those people that created them. 203 Technicians, engineers, hundreds of people who will be able to feed their 204 children tonight so those children can grow up big and strong and have 205 little teeny children of their own and so on and so forth. Thus adding to 206 the great chain of life. 207 208 You can find this scene on YouTube but I won't link it for fear of accidentally 209 causing someone to view an advertisement. 210 211 LLMs offer an even more ideal kind of software to the investor. First of all 212 they require an enormous amount of capital to train, and specialized hardware 213 to run, making them suitable to offer as a service, where the amount of profit 214 can be made to go up in a controlled manner. What a delicious idea. 215 216 More to my point, they offer a host of subjective, ill-defined tasks that are 217 immune to being completed. They've managed to take something well-defined, 218 well-scoped, and completable, and turn it into an untameable monster that will 219 be sure to offer software churn for decades to come. 220 221 Have a peek at this blog post that is going around lately: [6]The pain points 222 of building a copilot 223 224 These people are brimming with excitement about all the new problems that LLMs 225 are bringing to the table. Some choice quotes: 226 227 Prompt engineering is time consuming and requires considerable trial and 228 error...As one developer said, "it's more of an art than a science". 229 230 Testing is fundamental to software development but arduous when LLMs are 231 involved. Every test is a flaky test. 232 233 The field is moving fast, and it requires developers to "throw away 234 everything that they've learned and rethink it." 235 236 Developers are having to learn and compare many new tools rather than 237 focusing on the customer problem. They then have to glue these tools 238 together. 239 240 It is still the wild, wild west ... It will be interesting to see how 241 software engineering will evolve, either through new processes or tools, 242 over the next several years. 243 244 LLMs are a way to make software take orders of magnitude more computational 245 power, electricity, and human labor, while delivering a product whose extremely 246 volatile quality is impossible to assure. The work will never be completed; it 247 will only create the need for ever more labor. 248 249 For investors, all this churn is attractive. It's disruptive. 250 251 It's why we can't have nice software. 252 253 Conclusion 254 255 Technology, and in particular, software, offers a glimpse of magic; a perpetual 256 motion machine; wealth created from nothing. It offers us a chance to work 257 together on something beautiful; to achieve perfection by ratcheting 258 improvements over time. 259 260 In the end, this opportunity is squandered in a doomed quest for endless 261 growth. 262 263 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 264 265 Thanks for reading my blog post. 266 267 [7]Home Page | [8]RSS feed | [9]Sponsor the Zig Software Foundation 268 269 References: 270 271 [1] https://andrewkelley.me/ 272 [2] https://www.cnn.com/2022/10/24/tech/eu-law-charging-standard/index.html 273 [3] https://techcrunch.com/2022/06/17/senators-call-for-us-to-adopt-common-charger 274 [4] https://www.eff.org/deeplinks/2023/04/platforms-decay-lets-put-users-first 275 [5] https://www.youtube.com/watch?v=YQ_xWvX1n9g 276 [6] https://austinhenley.com/blog/copilotpainpoints.html 277 [7] https://andrewkelley.me/ 278 [8] https://andrewkelley.me/rss.xml 279 [9] https://ziglang.org/zsf