The endless pursuit of the new and shiny makes us forget about the great things which already exist. Some look hopefully towards the future, some look mournfully at the past, but it seems that the present is eternally forgotten. The things that we have are never sufficient; either they’ve been lost to the past, or they’ve yet to be gained. This nonsense creates in us either an addiction to novelty that requires the remaking of everything, or a disregard for the established that desires its destruction.
Of course, we first observe this in consumerism, where the old is thrown away so that we can buy the new, but that’s only the superficial layer, the cursory observation of the disease. This redoing of all, ultimately, permeates all of technology. No one is ever content with the technology that they have, especially technology involving computing.
As we use a new technology and discover its potential, we find its limits. When this happens, either the limits become a grounding philosophy, or an annoying problem to solve. Take a look at suckless software; use anything that comes from this movement and you will quickly realize how limited the software is. However, proponents of suckless would say that this is the point, that the limits are there to make the software better. Minimalists would naturally agree, and also those with old hardware that can’t exactly run the large desktop environments we have now, but I’m not sure about the pragmatic users who do not exactly correlate limits with philosophy.
Because what is the purpose of software philosophy if it only creates limits? You will say “correctness”, but this is what may lead to people iterating upon your software: if the benefits of your philosophy do not outweigh the restrictions of its self-imposed limits, then the software will feel incomplete instead of correct. Necessitating a strong study of your program and its ecosystem to understand the ways it can be ultimately helpful in computing will naturally lead to iteration; at least one developer will come to understand the whole and say, “I can make this easier”, and then the easier program that comes out of this will be used instead, possibly at the cost of your self-reported correctness.
I do not say this to dismiss correctness, and I do not say this to promote the endless iteration of software that already exists. However, I do say this because the conditions allowing for the perpetual re-creation of software that already exists are generated within the union of unbalanced philosophy and users trying to get things done. I am a strong advocate of using established technologies with a proven track record and reliable authorship; I use Debian, I use KDE Plasma, I use Chromium1, because all three are good, mature technologies that work, and do not need further design iteration or remaking. Lots of users feel this way too because these programs struck a good-enough balance between philosophy/correctness and ease of use.
I cannot, however, say the same for other competing Linux distributions, window managers, and browsers. On the latter, look at how many new browsers are there: Arc, Zen, Atlas, Helium, and so on. Each of these are accompanied with a big claim that they are bringing to this world a new experience, yet another iteration upon the same display and access of hypertext. Why is this? Did we need to change the formula of browsing? How much room is left for improvement, other than incremental improvements to performance?
Software dysgenics
Dysgenics is the process by which a population’s genetic quality decreases over time. In software development, dysgenics manifests as the creation of new software that sucks more and more with each new iteration because the previous ones carried philosophical baggage that sucks. This is what I mean by the balance between philosophy and ease of use; too much focus on philosophy and the user experience will suck, but too much focus on ease of use and then the philosophy will suck.
The reason why we have Arc, Zen, Atlas, Helium and so on is because their predecessors had a philosophy that sucked, which leads to increasingly easier software which, in turn, sucks on philosophy. To combat this loss of philosophy, new software with focus on philosophy are created, and they often suck even more. This cycle perpetuates itself because no one dares to revert to the last iteration of the software that didn’t suck, instead of progressing towards more suck.
I use Debian as my operating system. Why? It doesn’t suck. It has a good philosophy: maintain a steady, predictable software base, take all the time necessary to ensure mostly everything works, and provide all that is needed for the user to get their job done. It doesn’t try to be easy to use, but at the same time, it doesn’t try to be difficult either. The user experience caters towards the exact middle of the Linux population; those who aren’t exactly newbies from Windows in the likes of Pop or Ubuntu, and those who aren’t exactly looking to compose their OS from scratch in the likes of Arch or Gentoo.
Yet, some people will tell me that Debian is old, that it’s an outdated distribution from the ancient 1990s which has been since superseded by newer, better distributions like Arch Linux. That Debian is still kept up-to-date with the latest software is no indication whatsoever of its relevance; to these people, it remains forever an old, deprecated distribution, because the new and shiny has been born into this universe and that is reason enough to them to disregard the well-established, tried-and-true.
Does this mean that Debian has failings in its philosophy, or its user experience? Certainly not! We are simply looking at the infectious nature of software dysgenics in action. Software dysgenics creates a miasma that infects other programs. Someone will see software with bad philosophy (or contrariwise, software with bad user experience), and then observe how iterations of this software trading its philosophy for ease of use (or vice versa) superficially corrects the alleged problem. This instills in their mind the belief that newer is always better. They will then carry this belief to other software, which perpetuates software dysgenics. Therefore, even if a software never sucked to begin with, it may start to suck because of the import of new, often younger developers subconsciously infected with this disease.
You may even have that virus yourself. How disappointed are you when looking at open-source projects whose last commit is just too old for you? Do you often seek alternatives that received newer development because of this? Have you even tried the older software, just to see if it still worked? If you are a serious developer yourself, how many times have you found some piece of software challenging enough to consider a rewrite? And contrariwise, how many times have you found software so good that you told yourself that you didn’t need to look anywhere else anymore?
Because we are so used to unbalanced software, we have come to believe that a process of constant, endless iteration is mandatory for software to retain its quality. This is, in all foreseeable ways, bullshit. There may be a need to iterate (or rather de-iterate) out of software dysgenics, but there is no need to iterate for the sole sake of iteration. A C program written for Unix eons ago can still be extremely relevant in this day and age; look no further than OpenBSD’s uname, which has received a total of 10 commits since 1995. The modern developer will shrivel at the sight of such ancient, “unmaintained” software, but it still works. It needs no iteration. It still provides functionality that is necessary for OpenBSD to function.
We sometimes face this as a developer, the shame of not finding ourselves content with well-established software. But what kind of shame is this? Shame in how we should be content, but aren’t? Or rather shame in how we’re such dinosaurs rejecting of newer convention? I found myself in shame of the former, but most are in shame of the latter. I find shame in sometimes falling for new technology I do not need because my appetite for novelty is dysregulated (and my appetite overall, besides); I do not find shame however in my abandon of some newer conventions, because even though I may fall for them for a time, I still return to what I know works best. Others, however…
Are often in shame of how they use old languages, such as C, instead of some modern innovation, such as Rust or Go. Often, this is backed with the claim that modern languages are better, safer, faster, and other amazing whatevers. The same extends to operating system: are you still using Debian? Are you not using Arch, Void, Gentoo, or Chimera? Silverblue with its immutable filesystem? Bazzite, Nobara? What are you doing, you decrepit dotard? Start ceaselessly switching distributions now until you stumble upon that which you will run for a few weeks until you feel that need to switch again. And again, and again, until… never, really.
All of it, of course, backed with rhetoric. You must switch to a new language because using the old one carries disadvantages so profound they aren’t mendable or correctable. You must install this Linux distribution because the old one is permanently outdated or will make you wait too long between package updates (that you probably do not need). If you’re not always ahead of the curve, you’re behind it, and therefore you must be newer, go faster, stay with nothing and never look back. All other arguments often in favor of the old (reliable track record, proven authorship, licensing footwork, etc.) are thrown away.
This attitude of discard, I do not get it. How do you grow roots into soil you upend everyday? Nothing will ever find stability if the approach to it is that it can be scrapped and remade the next day, removed and reinstalled at a moment’s notice. It is no wonder that the programs that are most commonly labeled unstable, for their observed unreliability (and not their versioning), are those that prioritize always being new, such as Arch Linux. Of course, this will be said to be simply a result of philosophy, and in no time, you will have new distributions, new iterations of the same that focus on ease of use (CachyOS, anyone?). And in no time, you will have software dysgenics again, as previously described.
Blowing up the cycle
I found myself frustrated at how unplastic I was. I couldn’t dedicate much time to learning new technologies. I wanted to learn Go, I wanted to use this and that Linux distribution, and while I have grown familiar with both to an extent, at every turn I thought to myself, “You know, I could have written this in LuaJIT. You know, installing this on Debian would have been a one-liner”. Things that have taken forever to bootstrap would have otherwise taken only a moment using what I’ve already known, and to the same results.
A commitment to what you already know, which you also know need no iteration, brings great comfort. I’ve grown myself into a hipster without knowing it. I would sometimes look down on others (in more of a paternalist way than a condescending way) for not being as progressive as I was. Truthfully, I was never satisfied at myself either. I thought of myself stupid for not finding convenience in NixOS, for instance. I also thought I was limited or perhaps too constrained by older ideas when I tried out Haskell, widely reputed for its benefits as a functional language, which I did not find.
But then, I had my Tony-like “I get it!” epiphany when I understood that these were not personal limitations but rather internal conflicts, having faced something better before and subconsciously preferring it to whatever I was trying. I thought, “This would have been simpler on Debian”, but I would erroneously redirect that thought into “Debian is simpler but it sucks, and this is better and I need to get better at using it”, like a kind of inverted therapy. It became evident in time that I was simply correct; it is simpler on Debian, and whatever mental mechanism I was using to justify my preference for newer technologies was a coping mechanism. I suspect most do this as well.
Coming to the realization that novelty isn’t always good helped make better choices elsewhere in my life. I speak of computers here, but everything else can be subject to the same. I’ve always used a water boiler to make tea, but at one point I bought a tea kettle because it was trendy and I thought that the retroness of it would make it better. I used it for about a week before I stashed the kettle into my cupboard, never to see it again. I’ve felt guilty for not using the kettle - what nice, slow technology it is! (and the Lord knows how less speed we need in our lives.) And yet, the water boiler was simply more convenient while producing the same results. Both the boiler and the kettle took up the same amount of time, but the boiler required less maintenance. It was kind of an objective observation to keep using the boiler.
Interestingly, we can see that novelty does not always arise as a new thing, but sometimes can be an older thing introduced as a “common-sense” replacement for something new that is claimed to have gone wrong. Most of the time, yes, it is the new thing that is the novel thing, and most of the time, yes, the new thing absolutely sucks, given everything described here. There are times however where returning to the old thing is the novelty. Using a tea kettle to brew tea, with the additional maintenance involved, is inferior to using a water boiler, even though the water boiler is a newer technology.
Another example I can provide is music. The old approach, relatively speaking, is to download your music. Download it from some completely legitimate site, put it on your computer and make a playlist in VLC. On the go, either figure out how to transfer the files to your phone and access them in a manner not too inconvenient or maybe purchase a dedicated music player, like the new Sony Walkmans. This is accompanied with the rhetoric that downloading your music ensures you’re truly in ownership of it, an argument which I believe most of us would sympathize with, provided how little we own today.
It is, however, undeniable that all of this is less convenient and, when observing its results, not justifiable when comparing it to the more obvious option of streaming the music. If you spoke to me a few years ago as to what I thought of music, I would say that people who stream music are stupid. Not in the intellectual sense of course, but rather in the way they have fell for the convenient novelty of streaming music. I tried to do it the old way, purchasing a music player, a pair of Sony balanced headphones that worked well with my Sony Walkman, and then I realized how inconvenient it all was in the end.
I saw no benefits whatsoever. I was aware I wouldn’t own the music, but for a moment I asked myself, realistically, what is the point in owning the music? What benefits am I extracting from owning it? The only benefit for me there was, was in the price, as when you own your music then you don’t have to pay for it again, but if I had no problems with the price or the principle of the price, then really, what even is the point of refusing to stream it? Did I have a moral or ethical objection to the company streaming it? No, I didn’t. It became clear to me that I was simply wrong and all the mental gymnastics involved to perpetuate my doing of the old way were cop-outs. Ownership of music is an absolute good, and perhaps even a moral imperative, but realistically, it didn’t really do anything for me2.
Therefore, sometimes, the old way ends up becoming the novel way, and the new way is actually the de-iteration that is superior. Iteration, in the end, is changing something that already exists, and that change can either be composed of new ideas or the application of older ideas. Going from the water boiler to the tea kettle, or from Spotify to downloading music, are both iterations, even though they both involve returning to the old way. Like any other iteration, they are not always appropriate. This is why strict conservatism in all things can hurt more than it helps, even though we do need more conservatism overall.
Choose what’s boring
Doesn’t this suck? Perhaps you’ve realized yourself that you’re too addicted to novelty, as most of us are. The correction is simple: choose what’s boring. Pick the things you know are well-established and stick with them until the end of time, as least as long as it remains reasonable.
You can list whatever things you are doing in your life and think about which ones you’re always trying to improve upon, and perhaps you’ll find that they either do not need improvement or you need to do the opposite, you need to devolve them, to de-iterate them. Here’s a couple examples:
-
As already described, software choices are often in need of de-iteration. Instead of using the latest and greatest operating system, choose Debian. Instead of using new compositors and desktop environments, pick KDE Plasma or XFCE. Instead of using novel browsers with AI features, pick Chromium or Firefox.
-
Our food choices are influenced far too much by fad diets and other trends. You do not need to purposefully withdraw half of the food pyramid from your diet. The old principles have always been correct: eat a proportionate amount of carbs, proteins, and fats across a diverse range of food.
-
When trying to get movies and TV shows for free, you don’t need to build an entire stack composed of the
*arrprograms. A torrent client and a video player is all you need. -
Music is best obtained through streaming, and I personally get it from YouTube. Anything else is always more complicated, for benefits I can barely observe.
-
Use new AI sparingly. Protect your brain and your capacity for both execution and creativity. Learn to recognize when it’s good to use it and when it becomes dangerous.
Footnotes
-
I like Firefox, but Chromium is a better developed browser. It is safer, Google throws an infinite amount of money into it to ensure its correct development, and you usually have a better time as a web developer working with it and targeting it than other browsers. I use Chromium as a pragmatic choice, not really out of preference, and I’m definitely aware how we need less Google in our lives. ↩
-
None of this should be interpreted as a criticism of ownership. We do not have enough ownership of things in our lives, and that is absolutely terrible. I am speaking strictly relatively here, for myself, and exclusively in the context of music. I would like to have a home, with some good land. I am also aware of the privacy issues that come with dependence on always-online services; I believe these are topics for another time. ↩