Over the years I’ve written a lot of blog posts that have danced around the argument I am about to make and the reason for that is very simple: I write proprietary software for a living. Expressing that opinion in a forum directly associated with my professional identity would essentially be career suicide.
So why am I doing it now? Well that’s the beauty of having an anonymous blog platform of course. I don’t have to self censor. I don’t have to worry that my employer or one of my clients will stumble on this and see that even though they are paying me and I’m doing the work, that I think its generally a waste of everybody’s time and money. Sure its okay to imply that without saying it because that leaves some level of doubt that deniers can use to reassure themselves. But actually saying it? No that’s just straight up career suicide.
But yeah the premise here is simple: Every single piece of proprietary software that you purchase, rent and use is effectively a dead end. There will come a time where that product changes to such a extent that you will no longer recognize it or the company behind it will go out of business and the product will literally die. In either scenario, you the end user are the one left holding the bag. You are the one who has to figure out what to do next. Despite spending your hard earned money for years in the vain hope that paying such a ransom would absolve of you having to solve your own technical problems, you will always end up paying the price at some point.
To those of you asking, “What kinds of software is he talking about,” let me be clear: All kinds. Everything. The proliferation of the belief that real work can only be done with closed source software is probably one of the single worst trends to ever take the tech world by storm. It has haunted us and our users from the very beginning. It will forever haunt us until we purge it from our collective minds and make a firm choice to begin anew.
The truth of the matter is that most software is written, compiled and distributed using a wide variety of open source software. Web Applications in particular are generally just thin top layers on a multi-level software cake that includes a massive amount of open source software. Yet those top layers tend to claim all of the credit and thus a lion’s share of the revenue. Proprietary software makers don’t like to mention or talk about this except when it comes time to blame somebody else for some easily-avoidable and idiotic (typically security related) failing exhibited by their software.
While I am at heart a pragmatist and I know that I cannot purge my entire existence of proprietary software (eat your hearts out firmware blobs and BIOSes), I know that my dependence on these things will eventually bite me in my ass. I know that they are weaknesses and I know that turning a blind eye to them only multiplies the level of pain I will experience tomorrow when that decision hones the instrument of our shared torture and pain: This software will no longer be supported and / or receive updates.
A lot of users are blissfully unaware of how critical a steady flow of updates is to maintain the illusion that the majority of our software isn’t a steaming pile of flaming dog shit. To be fair it wasn’t so bad a few decades ago before the Internet became a thing. But now, the threat of malicious attackers from every imaginable corner of the planet working in unison to p0wn you so that they can virtually teabag you and your at best “pretending to be moral” corporation or independent ass. But the second your critical piece of software stops receiving updates and support (essentially the same thing as not updating software is the equivalent of not supporting it in a modern threat model), it becomes a massive liability.
Unless of course you want to turn the clock back on this whole “everything is online and in the cloud”. Most people probably wouldn’t opt for that of course, but I gotta tell you: There are days when I honestly wonder to myself what a different shard of the metaverse where the Internet didn’t become a core part of all of our lives would look like. You see, I remember what software was like before the Internet became a thing. Not professionally of course as I was much too young for that. However, I did run into a lot of that older software, especially as a consultant and universally users were totally blinded to the risk that it posed… and yes in every single case all of this software was at least connected to a network that was connected to the Internet. So the relevant risk factors were there.
But that’s the thing. We changed the rules for those users and in the worst sort of way. If an actual end user was to ask me, “Why did (insert bullshit technical concept here) have to change and force us to rewrite all of our code” I don’t have a good answer to give them. That’s because the only answer is, “We wanted to do something different” which is basically code for, “It didn’t serve our interests anymore and also we don’t give a fuck about you and your interests”. There is no logical reason why the COBOL code a company wrote 40 years ago can’t still work today, especially not if the business logic itself is valid, only a long list of technical reasons which essentially amount to nothing more than excuses.
There is no kinder way to put it. Well maybe there is but it would be way less authentic and thats not why any of you come here. You want me to keep it real and that’s what I want to do as well.
To be fair free and open source software is not inherently immune from these forces, but the key difference is that free and open source software at least affords users the opportunity to do something about it. While I will begrudgingly admit that most probably wouldn’t take advantage of such a chance, I think its safe to say that some would.
In any event, differences of opinion such as these have essentially convinced me that my time in tech is over. At least in the guise of a technical contributor. Obviously I’ve got a lot of ideas on how tech can evolve to be better and we’ll go over all of them on this blog in due course. The three basic concepts driving most of these opinions are:
- Right To Consume and Create
- Longevity of Code
- Efficiency of Operation
This post largely covers the first concept because that’s because the purpose that Free and Open Source software serves: It is your hedge against external entities deciding to work against your own interests. Not everybody has to be a coder, but everybody has the inherent right to code. It is the only way to guarantee an end user is fully capable of guaranteeing the quality of their computing experience.
That’s all the rant that is fit to print today. I look forward to y’alls feedback on this one.