280 lines
15 KiB
Plaintext
280 lines
15 KiB
Plaintext
[1]Andrew Kelley - Why We Can't Have Nice Software (2024 Feb 04)
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
Why We Can't Have Nice Software
|
|
|
|
The problem with software is that it's too powerful. It creates so much wealth
|
|
so fast that it's virtually impossible to not distribute it.
|
|
|
|
Think about it: sure, it takes a while to make useful software. But then you
|
|
make it, and then it's done. It keeps working with no maintenance whatsoever,
|
|
and just a trickle of electricity to run it.
|
|
|
|
Immediately, this poses a problem: how can a small number of people keep all
|
|
that wealth for themselves, and not let it escape in the dirty, dirty fingers
|
|
of the general populace?
|
|
|
|
This is a question that the music industry faced head-on, and they came up with
|
|
EULAs, enforced via the state's monopoly on violence, and DRM, a way for
|
|
software to act antagonistically against its own users. Software can do useful
|
|
things like encode media into bits, and then copy those bits. That's
|
|
dangerously useful, and it had to be stopped.
|
|
|
|
The True Cause of Bitrot
|
|
|
|
What about bitrot, you say? It takes ongoing maintenance to keep software
|
|
working, doesn't it?
|
|
|
|
Let's think critically about bitrot for a moment because, as a reminder, bits
|
|
don't actually rot - that's kinda the point of bits. In the best case scenario,
|
|
bitrot happens due to progress - perhaps a dependency has made improvements but
|
|
requires breaking API compatibility, or better hardware comes out and the
|
|
software needs to be recompiled for that hardware. In this case, it's kind of a
|
|
happy outcome. Some labor is needed to enhance the software in response, but
|
|
then, once again, it's done; ripples disappearing from the surface of a lake
|
|
hours after a stone is thrown into it.
|
|
|
|
The darker side of bitrot is due to businesses trying to make more profit than
|
|
last year, and launching marketing initiatives. For example, Microsoft shipped
|
|
a Windows Update that puts advertisements into the start menu, advertisements
|
|
into the task bar, and changed the control panel's user interface to unify it
|
|
with their business incentives - namely a superficial makeover to justify
|
|
customers paying additional money for what is effectively worse software - it
|
|
has new bugs and is now ridden with advertisements. This caused a bunch of
|
|
churn in their own codebase, as well as other software trying to use native
|
|
user interfaces on Windows.
|
|
|
|
It's all so incredibly wasteful. And that's the point, isn't it?
|
|
|
|
The programmers at Microsoft could have done less work, or worked on bug fixes
|
|
instead. The UI designers could have done less work, or tweaked their existing
|
|
design instead of making a new one. The managers could have done less work.
|
|
Customers could have paid little to no additional money for a Windows Update.
|
|
This all would have culminated in a more robust version of Windows that
|
|
customers preferred, instead of one that is effectively boycotted like Vista
|
|
and Windows 11.
|
|
|
|
It's actually a problem that software is too efficient and has this nasty
|
|
tendency of being completed. Software offers us a glimpse into a post-scarcity
|
|
society, but it is being actively sabotaged by those who seek to turn a profit.
|
|
|
|
Platform Waste
|
|
|
|
Consumers love standards. Standards allow multiple parties, perhaps even
|
|
competitors, perhaps especially competitors, to have interchangeable components
|
|
with each other, which gives consumers options, and negotiation power.
|
|
|
|
For-profit companies hate standards. They would rather have their own special
|
|
cable, for example, that only works for their devices, and only they are
|
|
allowed to manufacture them. To be more specific, underdog companies like
|
|
standards because it lets them compete. The established players don't want to
|
|
have to play fair.
|
|
|
|
You can see this playing out right now with the [2]EU formally adopting a law
|
|
requiring Apple to support USB-C chargers. At the time of writing there is no
|
|
such law in the United States, but it is [3]being discussed by politicians.
|
|
|
|
Standards allow software to be more efficient. By sticking with a standard for
|
|
a period of time and then coordinating an upgrade to a newer one, software
|
|
churn is minimized, resulting in a fixed amount of software development labor
|
|
needed.
|
|
|
|
On the other hand, without a standard, for-profit companies are incentivized to
|
|
fiddle with their product in a wasteful manner. For example, Apple has in the
|
|
past made insignificant changes to their charging cable, making it not
|
|
compatible with the one from the previous year. This resulted in more profit
|
|
for Apple since consumers found their existing cables useless and had to buy
|
|
new ones. Ultimately this resulted in more money being spent in the economy,
|
|
increasing the country's GDP. Economists rejoice; the Earth weeps.
|
|
|
|
Think about how many messaging apps have come and go and how much programmer
|
|
hours have been wasted on them. We almost had XMPP be mainstream, but then
|
|
Google outgrew their "don't be evil" diaper and put on their "make profit" big
|
|
boy pants. If your goal is to turn a profit, it's obviously the correct choice
|
|
to invest into a platform that you own. So then we got a half-dozen buggy
|
|
messaging apps from Google that didn't even work with each other, let alone
|
|
Apple's platform or the other contemporary players.
|
|
|
|
The new hotness is Discord, which is already starting, predictably, [4]to decay
|
|
. I can't believe a human sat down and wasted hours of their life coding "super
|
|
reactions". It's not something that really needed to happen.
|
|
|
|
Imagine if all these programmer hours spent on all these products actually
|
|
centered around a proper standard, which evolved along with consumers' needs
|
|
rather than these companies' ongoing need to fiddle with the knobs and sliders
|
|
until profit comes out. The thing is, if this actually happened, then what
|
|
would these employees spend their time on? At some point society would be
|
|
pretty much done implementing messaging software. Messaging app updates would
|
|
be rare, and bugs in messaging apps would be rare. We would reach peak
|
|
messaging.
|
|
|
|
Peak Dishwasher
|
|
|
|
Decades ago, we already did it. We reached peak dishwasher. Dishwashers
|
|
achieved perfection, and it was no longer possible to improve them. The
|
|
mechanics were optimal, the user interface was ideal, and consumers had no
|
|
desire for any changes.
|
|
|
|
One would, naively, think of this as an accomplishment. But how is a company
|
|
supposed to make more profit than last year? By any means necessary, of course.
|
|
|
|
They invented these dishwasher detergent pods that are actually a downgrade -
|
|
slightly more time consuming to use than powder, more expensive to manufacture
|
|
and purchase, worse for the environment, and most offensive of all - actively
|
|
sabotage the dishwasher's prewash feature making the product actually function
|
|
worse than before!
|
|
|
|
And from a business perspective, it is a critical success. They found a way to
|
|
make consumers spend more money on dishwashing. The line goes up, for one more
|
|
year. But it's not enough. It has to go up every year. What else can we do?
|
|
|
|
I found myself in a position where I needed to buy a new dishwasher last month,
|
|
and, already being aware of this problem, did my very best to buy one that
|
|
worked well. I picked one that had 5/5 stars on Consumer Reports.
|
|
Unfortunately, the dishwasher that I ended up with is my worst nightmare.
|
|
|
|
It takes 30 seconds to boot up, presumably because of the Bluetooth and WiFi
|
|
driver in it. Many of the configuration options are hidden behind a proprietary
|
|
app. The buttons are hidden and touch based instead of being visible and
|
|
depressing with natural tactile feedback. I still haven't yet done the chore of
|
|
going into my router and disabling it from accessing the Internet. I had to
|
|
give it access to use the app to find out why it was broken. Until I do that
|
|
chore, there's a chance it could auto update and have a firmware bug and stop
|
|
working, or just waste my bandwidth. Who knows what it's up to?
|
|
|
|
Meanwhile, I had to call a repair technician to fix the door latch already, as
|
|
well as the soap dispenser latch. Both things have since failed to work
|
|
properly again and I still need to do the chore of calling the company to get a
|
|
repair done a third time.
|
|
|
|
Before we moved, we had an older dishwasher that worked perfectly. No Internet,
|
|
no Bluetooth, and the door latches worked flawlessly through thousands of runs.
|
|
|
|
The problem with the requirement for each year to be more profitable than the
|
|
last is that once you reach the peak, once it's not possible to actually
|
|
improve your product any more, you still have to change something. Since you
|
|
can't change it to make it better, you therefore will change it to make it
|
|
worse.
|
|
|
|
What Blockchains and LLMs Have in Common
|
|
|
|
Plenty of people roll their eyes at blockchain being the new buzzword, or about
|
|
how tech is overobsessed with AI (LLMs) right now. It's easy to chock it up to
|
|
it being a silly, harmless fad perpetuated by uneducated or misguided people,
|
|
but in reality it's a lot more intentional than that.
|
|
|
|
Most tech workers work 40 hours per week at some company. That's a lot of
|
|
collective hours spent on something. What factors go into deciding, as a whole,
|
|
what that effort is spent on? Employees have some choices in the matter, but in
|
|
the end those choices are limited to job offers. Job offers are created by the
|
|
owners of companies who decide what they want to invest their money into.
|
|
|
|
In other words, venture capitalists decide what is the current hotness
|
|
precisely by directing large amounts of labor towards whatever they want.
|
|
Empirically, VCs are primarily motivated by seeking a return on investment. The
|
|
goal is to turn a big sum of money into an even bigger sum of money. In theory,
|
|
this is because with an even bigger sum of money, you can then start to spend
|
|
that money on directing an even larger amount of labor towards whatever you
|
|
want, bypassing democracy to influence the future of humanity, but in practice,
|
|
most VCs get fixated on that return on investment until they die.
|
|
|
|
If you were to criticize blockchain technology from a purely technical
|
|
perspective, you might point out the flaw that proof of work requires an
|
|
exponentially increasing amount of computational power, and thus electricity,
|
|
in order to keep the blockchain database alive over time. You might point out
|
|
how inefficient of a database it is. But you would be missing the point.
|
|
Blockchain technology excites investors precisely because of how wasteful it is
|
|
. Even if we had fusion (!!) it would eat up all that energy and more. It's
|
|
difficult to express the magnitude of how wasteful this is, and the fact that
|
|
it's built into the system intentionally is sinister.
|
|
|
|
Blockchain technology is a kind of software that doesn't get completed or
|
|
perfected. Rather it's the opposite; the longer it is in existence the more
|
|
work it creates for everyone to do. The waste is a feature; it's how the [5]
|
|
line goes up.
|
|
|
|
Reminds me of this scene in The Fifth Element where Zorg says:
|
|
|
|
Life, which you so nobly serve, comes from destruction, disorder, and
|
|
chaos. Now take this empty glass. Here it is: peaceful, serene, boring. But
|
|
if it is destroyed... look at all these little things! So busy now. Notice
|
|
how each one of them is useful. What a lovely ballet ensues, so full of
|
|
form and color. Now, think about all those people that created them.
|
|
Technicians, engineers, hundreds of people who will be able to feed their
|
|
children tonight so those children can grow up big and strong and have
|
|
little teeny children of their own and so on and so forth. Thus adding to
|
|
the great chain of life.
|
|
|
|
You can find this scene on YouTube but I won't link it for fear of accidentally
|
|
causing someone to view an advertisement.
|
|
|
|
LLMs offer an even more ideal kind of software to the investor. First of all
|
|
they require an enormous amount of capital to train, and specialized hardware
|
|
to run, making them suitable to offer as a service, where the amount of profit
|
|
can be made to go up in a controlled manner. What a delicious idea.
|
|
|
|
More to my point, they offer a host of subjective, ill-defined tasks that are
|
|
immune to being completed. They've managed to take something well-defined,
|
|
well-scoped, and completable, and turn it into an untameable monster that will
|
|
be sure to offer software churn for decades to come.
|
|
|
|
Have a peek at this blog post that is going around lately: [6]The pain points
|
|
of building a copilot
|
|
|
|
These people are brimming with excitement about all the new problems that LLMs
|
|
are bringing to the table. Some choice quotes:
|
|
|
|
Prompt engineering is time consuming and requires considerable trial and
|
|
error...As one developer said, "it's more of an art than a science".
|
|
|
|
Testing is fundamental to software development but arduous when LLMs are
|
|
involved. Every test is a flaky test.
|
|
|
|
The field is moving fast, and it requires developers to "throw away
|
|
everything that they've learned and rethink it."
|
|
|
|
Developers are having to learn and compare many new tools rather than
|
|
focusing on the customer problem. They then have to glue these tools
|
|
together.
|
|
|
|
It is still the wild, wild west ... It will be interesting to see how
|
|
software engineering will evolve, either through new processes or tools,
|
|
over the next several years.
|
|
|
|
LLMs are a way to make software take orders of magnitude more computational
|
|
power, electricity, and human labor, while delivering a product whose extremely
|
|
volatile quality is impossible to assure. The work will never be completed; it
|
|
will only create the need for ever more labor.
|
|
|
|
For investors, all this churn is attractive. It's disruptive.
|
|
|
|
It's why we can't have nice software.
|
|
|
|
Conclusion
|
|
|
|
Technology, and in particular, software, offers a glimpse of magic; a perpetual
|
|
motion machine; wealth created from nothing. It offers us a chance to work
|
|
together on something beautiful; to achieve perfection by ratcheting
|
|
improvements over time.
|
|
|
|
In the end, this opportunity is squandered in a doomed quest for endless
|
|
growth.
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
Thanks for reading my blog post.
|
|
|
|
[7]Home Page | [8]RSS feed | [9]Sponsor the Zig Software Foundation
|
|
|
|
References:
|
|
|
|
[1] https://andrewkelley.me/
|
|
[2] https://www.cnn.com/2022/10/24/tech/eu-law-charging-standard/index.html
|
|
[3] https://techcrunch.com/2022/06/17/senators-call-for-us-to-adopt-common-charger
|
|
[4] https://www.eff.org/deeplinks/2023/04/platforms-decay-lets-put-users-first
|
|
[5] https://www.youtube.com/watch?v=YQ_xWvX1n9g
|
|
[6] https://austinhenley.com/blog/copilotpainpoints.html
|
|
[7] https://andrewkelley.me/
|
|
[8] https://andrewkelley.me/rss.xml
|
|
[9] https://ziglang.org/zsf
|