Friday, March 2, 2007

The Open Source Problem

I recently posted an essay on my website titled “An Ode To Mac”. The essay simply reflected my awe for Apple, it’s attention to detail and the wonderful user interface design. I simply wanted to share my satisfaction with a particular product; what I did not expect was a number of emails sent to me by people who took my article as a personal insult to their love for Open Source software. One person berated me for buying into Apple’s “corporate bullshit advertising” and helping development of “heartless capitalism” by spending my money on something that I could get for free.

Now, let me say this – while I like not having to pay money for software (who wouldn’t), and I make a lot of my own source code available online to other developers I am very much against what a lot of today’s Open Source software amounts to. Let me clarify – I am all for code sharing and, for example, would love to see the source code for Windows and Mac OS just so I could play with them. However, I deeply dislike the idea of software being given away for free. Why? Because it is killing programming as a profession. Because it is turning software development into an after-work hobby for people who have other sources of income. Because it has the potential of eliminating thousands of jobs – after all, who’d want to pay for software if you can get it for free?

To better explain my point, let me give you a brief overview of the history of the Open Source movement.

The free/open source software movement began in the 1960's. The small "hacker" communities from universities such as Carnegie Mellon and MIT passed their code back and forth between their members – if someone made an improvement he or she were expected to submit your code to the community of developers. To withhold code was considered impolite at the very least - if you benefited from the work of your friends, you should return the favor.

It was in this environment that Richard Stallman began his computer science career in 1971 at the MIT AI lab. Stallman worked primarily on a proprietary operating system designed to run on the DEC PDP-10. Once DEC systems were discontinued and many of Stallman’s colleagues ended up leaving academia for the private sector Stallman began his work to resurrect the community in which developers could freely exchange code. He came up with the following specifications of what truly free software should be.

1. Run the program, for any purpose.
2. Modify the program to suit their needs. (To make this freedom effective in practice, they must have access to the source code, since making changes in a program without having the source code is exceedingly difficult.) They must have the freedom to redistribute copies, either gratis or for a fee.
3. Redistribute copies, either gratis or free.
4. Distribute modified versions of the program, so that the community can benefit from your improvements.
To ensure that his code would always be freely modifiable and distributable Stallman created the GNU General Public License (GPL); this license specified that users of the source code could view, change, or add to the code, provided that they made their changes available under the same license as the original code.
Another big name in Open Source is Linus Torvalds. During his second year of graduate studies at the University of Helsinki he wrote a UNIX-like kernel called Linux (the name is a derivative of Linus + UNIX). Over the years, a number other programmers began to modify and tweak the code, sending their improvements back to Torvalds for inclusion in the next release of the kernel. Eventually, Linux became THE kernel for the GNU operating system.

Today Linux has a huge share of the operating system market, especially when it comes to server OS. While not as user-friendly as Windows or Mac OS Linux is very stable and free. Just to give you something to compare – it cost my company $8,000 to set up a Microsoft Exchange Server; setting up Postfix or SendMail would have been free. On the downside, I’d have no one to call for support to troubleshoot server problems, I would not be able to integrate mail with Active Directory and I wouldn’t have as many third-party add-ons available. Is that worth a 8000-dollar price tag? For a small used it obviously doesn’t, but for a large company it is definitely a viable solution.

Open Source is NOT the same thing as free. All it means is that whether you purchase a software package or get it for free, you will have access to the source code and the ability to modify/tweak it to suit your needs. Many people, however, confuse Open Source with free. When you buy a car, you have access to its engine and can make modifications at your heart’s content. You don’t expect to get a car for free, do you?

The problem with “free” is that it goes against the grain of free market economy. What drives any healthy economy is competition and you cannot compete with free. Ford’s Model-T was produced unchanged from 1908 to 1927, and we’d still be driving something similar today if it weren’t for the competition from Chrysler and GM.

Same concept works for software. For years I have been using Borland J-Builder (among other Borland products). Last year (2004) IBM came out with Eclipse and made it available for free. Let’s be honest now – who the hell is going to pay for a product when a similar package is available for free. Another problem is that because a product is free it doesn’t have to compete with other similar products on feature-to-feature bases. Who cares if GIMP is more cumbersome to use than Adobe Photoshop – why bother improving the user interface if no one will pay for it?

Many programmers who develop open-source applications just do it as a proof-of-concept type thing – they just want to see for themselves if they can get a piece of code to work. There is no incentive for them to make it better, and I’m speaking from personal experience. About 6 years ago I wrote a piece of software that traced DLL dependencies under Microsoft Windows. It wasn’t a great product, the user interface pretty much sucked and it had a few bugs that had to do with file system permissions. I wrote the program, posted it online and forgot about it. A year ago I went back to the website that hosted that program and to my surprise realized that people still used it, even though you can download a similar program from CNet for $15.00. People were willing to use my crappy proof-of-concept program rather than paying $15.00 for a much better product!

I could go on for pages and pages making a case against free software, but I do not want to bore my occasional readers and most of all, I do not want to bore myself. Instead, I’ll allude to an old axiom – if something is too good to be true, it probably is. The concept of free software might sound really good today, but I’d like to hear all the Open Source zealots’ opinions if, for example, cars were free and they were forced to drive a 1908 Model-T Ford.

No comments: