The Problem With Religion (In Software)

As engineers we generally strive for the simplest most elegant solutions to the problems we encounter in our work. Though we may not agree on what systems or frameworks are elegant, we tend to look at things from a fairly objective perspective. I believe that it is that focus on objective quality that has allowed our industry to make the startling advances it has in  the last twenty to thirty years. Think about it. You probably have a computer on your desk or in your pocket that is more powerful and more useful than the machines of the seventies and eighties that would have taken an entire room to house. I was disappointed to hear one of my former heroes decry the state of modern computing in rather exterme terms. Basically, Richard Stallman has come to believe that all non-free software is evil (his word not mine) and should not be developed or used even if it is far superior to a free alternative or even if a free option does not exist.

Computing has advanced to where it is in a relatively short amount of time because of pragmatism, not zealotry. Because smart engineers built what they felt was the best software for their problem domains. More often than not the tools and products they developed were proprietary. One of most obvious modern examples of this is the iPhone. Whether you like it or not mobile computing would not have advanced to where it is today had Apple developed the iPhone or iOS. It is true that iOS is one of the most closed proprietary systems to date, but that does not mean that it is not important. In fact, it is arguably the most important system in the mobile / tablet computing space.

Imagine what mobile computing would be like if everyone had to write their drivers for each specific piece of hardware, then attempt to hack a Linux or BSD distro onto their device, and write custom software for handling telephony and other regular smart phone actions (e-mail etc).  This generally what you would have to do today to install a “free” phone. Keep in mind that every-time you got a new phone or tablet, you’d have to go through all or at least a good part of this process again. What about non-engineers? You users. People who can’t figure out the basics of setting up their e-mail on iOS, let alone compile a kernel. Should they be frozen out of the mobile computing revolution.

Isn’t better to have something that works for a large number of people with little to no technical expertise on the part of the user, rather than have something that only an elite few “hardcore” people can use?

Would we even have the features and capabilities that we have grown used to if it weren’t for commercial interest pushing the envelope of technical innovation? Pragmatism is not a dirty word as Stallman and other freedom zealots would have you believe. We should do as those who came before us have done: use the best tools for the job and take advantage of every resource we can, even if they are not free. Innovation requires that level pragmatism and proprietary software does not need to justify its existence; history does that.

Comments are closed.