“Modern electronics age quite rapidly, and generally has to be replaced long before it starts to break due to physical wear and tear. This is partly by design (planned obsolescence) and partly due to inherent forces within the industry (Moore’s Law). This process is very visible, even to the untrained eye. Anyone can probably name a dozen technologies that rose to prominence and then faded into obscurity within their lifetime.
Commercial software follows a similar obsolescence cycle – or at least so it would seem to an untrained eye. Publishes love to apply superficial UI redesigns and add minor changes to increase the number of bullet points in the feature list every few months, and force customers to re-buy their software under a new version number or even updated product name. Constant feature additions (which lead to inevitable bloat) usually make the software perpetually unstable. So those who are accustomed to working with proprietary licensed software the joke seems incomprehensible.

“But for free software, it works. Free software doesn’t age and usually does not become obsolete. It matures, stabilizes and becomes a rock solid foundation upon which you build other software. It actually blows people’s minds when I tell them I use software that is over 30 years old every single day. Don’t believe me?

“As you probably know, I am a LaTex user. At the core of that complex typesetting is the Tex codebase which was originally released back in 1978 and frozen in 1989 at version 3. That software is so stable that since then, whenever a new update is released the version number is not incremented, but instead a significant digit is added at the end of it, so that the version number as a whole approaches π. Donald Knuth himself proposed that after his death Tex ought to be updated one last time, and the version number should be changed to π at which point all future bugs will automatically become features. (((Now that’s some stellar geek humor.)))

“The primary text editor I use is Vim which is based on vi, which was written by Bill Joy in 1976. While novice programmers often scoff at it, and regard it as archaic, it remains an extremely powerful tool for power users. It is also one of the Two True Text Editors™ – the other one is Emacs which was written by Richard Stallman around the same time as vi, but designed to solve an entirely different set of problems. Bill Joy was writing an ultimate tool for text manipulation over slow network connections – an editor that would minimize cursor movement and maximize the amount of work that could be done by chaining key-stroke commands. Emacs on the other hand was built as an infinitely customizable text editing framework. Stallman knew that coders will always need their editors to do weird things, and that no matter how great the plugin API is in your IDE, it will probably not be enough. So he created a LISP interpreter with a built in text editor allowing users to write and re-write the core of the system at a whim.

“The shell I use is Bash which was first released back in 1989. It was a backwards compatible replacement to the Bourne shell (1977) which in turn replaced the Thompson shell (1971). Despite it’s age, Bash is a staple of the Linux and Unix worlds. Along with the Bourne shell it is the default shell on most systems, and a primary interface through which admins interact with most servers on the internet.

“The C programming language, used to write all of the above (except maybe the Thompson Shell), as well as the operating systems on which these programs run was created in 1972, and the latest stable release is from 2011. It is still used to create modern applications today, and tends to be the preferred language for systems programming. The 22 year old Linux kernel, originally released in 1991 by Linus Torvalds is written primarily in C, and has been in continuous development since then.

“Apache and PHP – the technology used on the back end of this site (and many others on the internet as part of the ever popular LAMP stack) are all close to 20 years old now. PHP is still big mess of a programming language, but it has matured considerably since its inception, and the community that spawned around it has become adept at working around its shortcomings and building bridges over its feature gaps and plugging its security holes.

“Algorithms and methodologies used in all the above applications are even older than that. Most of the state of the art searching and sorting algorithms as well as most of the common data structures such as trees and graphs were discovered in the early 70′s. I like to joke around that the reason for this was that back then resources such as memory and disk space were very limited, and Moore’s law was not a known trend yet. These days programmers don’t have the same incentive to be clever – it is often much easier to throw hardware at the problem at hand, or wait 18 months and then double your performance than devise a clever method of working around your limitations. It is however probably more accurate to say that most of these fundamental algorithms were devised back then rather than now, for the same reason many of fundamental scientific and mathematical theorems were discovered in the ancient times – it is much easier to stumble upon patterns and solutions when the science is young and the field is almost entirely unexplored.

“I guess my point is that free software does not typically age – it matures. It doesn’t become obsolete – it becomes stable. Most application software grows until both the creators and community agree it is feature full, and good enough, at which point it stabilizes. Since new features are no longer aggressively added, the code surface for bugs to hide in decreases and over time it approaches zero. Systems software on the other hand is in the unique situation – it can never be stable, because it always has to catch up to hardware and support new devices and new interaction paradigms. Therefore OS can be either slightly buggy or behind the times, but not both at once.

“I usually tell young, impressionable new programmers that releasing open source software is like getting married. It is a life-long commitment. Once you put it out there, you are stuck with it….”

Here’s The Thing With Ad Blockers

We get it: Ads aren’t what you’re here for. But ads help us keep the lights on. So, add us to your ad blocker’s whitelist or pay $1 per week for an ad-free version of WIRED. Either way, you are supporting our journalism. We’d really appreciate it.