davideisinger.com

My personal website
Log | Files | Refs | README

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