The dot come debacle has taught us that Internet is not a one-way bet on instant wealth. But it has proved a great way of driving costs out of software development. How much would you expect to pay for an operating system today? Or software to run your web server, or mail application? The correct answer is .. nothing. All these are available for free thanks to the Open Source movement.
Lets get the politics of Open Source out of the way first. There are two camps of software developers. One - the Open Source brigade, believe that software grows incrementally - that all software today builds on a mass of pre-existing work, most of which is in the public domain. To the Open Source camp, the act of patenting and selling such software is evil! On the other hand, the commercial world sees software as a source of competitive advantage and guards jealously what are sometimes quite trivial inventions. The most glaring example in recent times being Amazon’s infamous patent on its ‘one-click’ ordering ‘invention’. The politics of Open Source are much more complex than this. If you want to learn more, read the excellent book Rebel Code*.
While the politics of Open Source are exciting, they would be trivial if the Open Source movement, aided by the Internet (which it collectively almost invented) had not come up with an unstoppably good way of developing quality software. Let me explain with an analogy. Suppose that you could harness all the effort that folks around the world put into doing their morning crossword puzzles. Imagine the enthusiasm and effort that a massive world-wide crossword puzzle would generate! If you could only think up an appropriate ‘puzzle’, the internet offers you unlimited free ‘labor’.
The ‘perfect’ Operating System
One of the ‘puzzles’ that crystallized the Open Source community was the building of the perfect operating system. In the 1970’s work done on what was collectively know an Unix, pretty well laid down the rules for what a computer operating system is and how it should behave - its ‘interface’. The basic notions of good software design were established then - software should be modular - a good program does little and does it well (in stark contrast to the way most commercial applications work). But better than this, the Unix movement achieved a large consensus on what these modular building blocks should be. Anyone who has used one of the Unix shells will appreciate how elegant this design is, and how the system of files and pipes make it easy to leverage the power of modularity. The basic Unix specification was crystallized in Posix - a blueprint of the Unix interface - but without the code that made it work.
Posix - the code-less Unix was the ‘puzzle’ that set the Open Source movement in motion. Posix, and a Fin called Linus Torvalds, who started work on what was to become Linux, over a decade ago. Torvalds began posting the components of Linux on the Internet, and a community of like-minded puzzle-solvers soon grew up around him. What made the whole program so successful was the common purpose of the puzzlers and the modular design of Unix. It was possible to develop, publish and test code designed to do one particular thing, without it having a load of side effects crop up in other parts of the system. (If you have ever programmed with non-modular systems - such as those using Fortran ‘common’ storage - or even if you write your programs with lots of ‘global’ variables, you will know about these pitfalls).
The public inspection that the internet brought to Torvald’s ‘work in progress’ has led to impeccable design. If your code is buggy, hundreds of ‘puzzlers’ pounce and fix it - all for the love of their art! This built-in quality control has led to whole chunks of programming expertise migrating to the open source paradigm. Most of the code that underpins the internet is Open Source - notably the highly successful Apache web server. Many key tools used in modern software development (compilers and scripting languages) are equally developed under constant public scrutiny. Amazingly, the software that is used in encryption is largely Open Source. The rationale here is that the chance of a hacker benefiting from intimate knowledge of the open technology is actually less of a risk than flawed software being developed in secrecy!
Open Source software was a real cat amongst the pigeons in the commercial software world. But some savvy operators have learned to cohabit with, and profit from the movement. IBM was one of the first, throwing out its proprietary web server and rolling Apache into its WebSphere offering. Many others have followed - most recently Sun as witnessed by this month’s lead. Noting the market success of Linux, many of the original Open Source developers have watered down their anti-commercial stance and founded Linux-related startups - notably Red Hat which offers a ‘professional’ version of Linux. In the other corner, Microsoft has blown hot and cold about opening up Windows code to public inspection, on the one hand mooting a move to totally closed networking to squeeze out Linux and on the other, offering a peek at the Windows source to major clients.
As Linux goes commercial there is a risk that it will encounter the same sort of competing implementations that caused its Unix progenitors so much strife. Doubts have been expressed on the long-term viability of the Open Source paradigm - with coders ‘growing up’ and tempted into ‘real jobs’. Personally, I reckon that there will be a good supply of puzzlers waiting to code for free for a while. The impact on the IT business, on corporations and end-users is harder to figure.
*Rebel Code by Glen Moody. Penguin Books 2002. ISBN 014 029804 5.
© Oil IT Journal - all rights reserved.