Is criticizing tech on political grounds valid?
Published on 2022-11-02.
I have multiple times criticized tech on political grounds, but is that a valid reason for criticism or does that simply constitute ranting?
I have criticized aspects of the tech industry, such as modern web development, the influence of Red Hat/IBM, Microsoft and other big tech giants on the open source and free software communities, and the general influence on IT developers and enthusiasts by the tech industry's hype machine, which in my humble opinion, unfortunately completely dominates the industry today.
Such blog posts are naturally met with opposition from the people who do the things I criticize and they often respond either by dismissing everything as a long-winded rant, or by simply stating that technology should only be judged by its technical value alone.
In my opinion and experience, it's fantasy to judge a technology on its technical merit alone, isolated from political influence. It cannot be done without you closing your eyes to some of the facts of life.
If I, either for a personal reason or a business related reason, have to choose between two different Linux distributions, or two different database solutions, I naturally have to look at the technical merit of each product, and I have to evaluate the product in relation to the problem I am trying to solve. However, each product is tightly bound by the politics that surround it, no matter what those are, and I cannot escape that fact.
It's important to understand that there is a huge difference between a Linux distribution or database solution that is primarily run by a big tech company and then a distribution or database that is developed and controlled 100% by a true open source and free software community.
While some open source and free software communities, like OpenBSD or the ZIG programming language, are run by the benevolent dictator for life (BDFL) method, others like Devuan or the text editor Neovim are run by some kind of community driven democratic process, both methods incorporate politics that enables the community to ensure that the interests of the community is what drives the project forward. This is important because you do not want to suffer from big corporate decisions affecting your Linux distribution, just like what happened with the sudden and unilaterally termination of CentOS by Red Hat.
And termination is not the only problem you have to worry about. Privacy is another concern for all businesses involved. Microsoft Windows 10 and 11 both send an almost continues stream of encrypted data back to Microsoft which you cannot neither look at nor truly know what consists of, you basically have to trust Microsoft that they are not stealing all your documents, contacts, and/or other personal information. From what I have seen, through deep packet inspection and analysis, I highly doubt that the steady stream of data is only telemetry.
Another thing to worry about is vendor lock-in. Vendor lock-in is when someone is essentially forced to continue using a product or service regardless of consequence, because changing product or service is either not practical, too costly, or too difficult.
Avoidance of vendor lock-in is something that truly merits political criticism in any branch of technology whether software or otherwise.
Vendor lock-in was perhaps my main worry about systemd when I wrote the article the real motivations behind systemd.
You hear it so often by proponents of systemd, and even Lennart Poettering himself have said it, that if you're unhappy about systemd, it's open source, you can simply change it or use something else. However, it's just not that simple. And this is where the politics become really important and relevant because you cannot simply judge a product like systemd on technical merit alone, the main driving force behind systemd is corporate finance and politics.
Even though many individuals and companies around the world contribute to systemd, systemd is not a community driven project. systemd was Red Hats solution to problems they wanted to solve in a very specific way, now, since Lennart Poettering no longer works for Red Hat, but instead works for Microsoft, and he still works on systemd, Microsoft seems to become the new lead company behind the development of systemd, which also kindda shows in the latest release of systemd-measure in systemd 252 in which binding TPM-based disk encryption to public keys/signatures of PCR values necessitates a "properly prepared kernel", i.e. a Microsoft signed kernel or binary.
Vendor lock-in was something the lead systemd developers was working towards very early on when they publicly addressed several third party projects and tried to convince them to make their projects depend firmly upon systemd, such as the attempts made by Lennart Poettering on the Gnome mailing list, which eventually succeeded. And the attempt made by Red Hat developer "keszybz" on the tmux project, which didn't succeed. Most of these attempts were addressed as technical issues, however when you read the long email correspondences you can see that technical issues had nothing to do with it.
This is unfortunately normal. We all know that big companies often make all kinds of political maneuverings to get what they want. Some pretend to be "the good guys", like when a major car manufacturing company states that they care a lot about the environment and therefore now are producing electric cars, all the while the excavation of all the raw materials used to make the car is done by exploiting extremely poor people working under absolute horrible conditions, also still harming the environment in the production facilities, and all the electricity needed to drive the car is still being produced by burning tons of fossil fuels.
Now, because of the adoption of systemd by most of the major Linux distributions, and because of the planned and now implemented tight integration of other systems into systemd, most of these major Linux distributions, like Debian and Arch Linux, have become vendor locked-in.
It doesn't matter that systemd is open source. If and when systemd suddenly implements an unwanted feature that gets tightly integrated into the system, pulling it apart or even removing it becomes extremely difficult and time consuming - just take a look at the tight integration of systemd with a component such as the udev device manager, which introduced numerous problems for non-glibc systems, such as musl and uclibc and the different BSD systems. At the time it led to Gentoo Linux creating a fork of systemd's udev codebase called uedev in order to avoid dependency on the systemd architecture.
Linux distributions with alternatives to systemd exists, such as Artix Linux, Void Linux, Devuan and Alpine Linux, however none of these projects are having an easy time because of the tight integration of systemd components into many other open source projects.
Vendor lock-in like this can turn out to be absolutely crippling. Of course, things will eventually be sorted out, and new solutions made, either from forks or other solutions, but not until a lot of chaos has subsided. Things cannot be changed overnight.
As an open source and/or free software community, it's important to stay as independent as possible. This doesn't mean that companies cannot contribute with code, hardware or finance. What it means is that a community driven project should stay community driven and make itself immune to corporate purchase and influence (such as a company hiring all of the lead developers).
As an example, OpenBSD is a 100% community driven project that takes great care of not being affected by corporate tech agendas. Companies use the OpenBSD code as they see fit, and they can contribute with code and finance, but they cannot effect the course of the project or change things. OpenBSD is made for the developers, by the developers, and you can then use it as well. This is very important.
Just because a company releases something as open source, doesn't mean the software is free to use, or that your privacy won't get compromised, and it doesn't mean that they are not - by design and 100% on purpose - simply using the open source community as free labor. Often a company releases something as open source, but at the same time they have a proprietary version of the product as well, in which the open source is barely usable, all the while the only product that actually runs on real hardware is the proprietary version, just so they "look good". It's like saying, "Oh look, we made this amazing product open source and we share it freely with the world!", yet it's useless without the proprietary part. This is IMHO what Google has done with Android and partly with Chrome.
Some companies embrace the open source community wholefully. They contribute greatly to the product and the community. Often a large part of the infrastructure of the company is shared with the community, either at open source events or online, such that all can learn and benefit from the experience the company is gaining in the usage of the product. Unfortunately, few companies embrace that practice.
So, in my humble opinion, criticizing technology on political grounds and criticizing how technology is being used is not only valid, it is necessary and important. However, at the same time, you also need to respect the guidelines of the different projects and locate the proper outlets for such activities. You cannot simply sign up on a support forum or a support mailing list and then start shouting at everyone. That's not only rude, but also counter productive.