To anybody who's been following the software industry, the last few months have been exciting ones. And its all centred around the buzzphrase "Open Source". The big guns of the industry seem to be realising that this is a phenomenon that won't go away, and even makes business sense if used right. The most visible example is Netscape, which has taken the plunge and decided to open up the source code to its popular Navigator browser software. This has caused great jubilation in the ranks of the developer community.
So why has this happened ? And why is it causing so much excitement ? For that matter, what is "Open Source" anyway ?
Software is distributed as "executable files" or "binaries". These are the actual programs that run on your computer. However, that isn't how the software gets its start in life. It starts off being written (more accurately, coded) in some suitable programming language, such as C or C++. This bears some passing resemblance to natural language and is known as "source code". This source code is then put through a process known as "compilation", which generates the executable files that then run on yur computer. Companies worldwide usually ship only the executables to the consumer, on the following premises:
But that is beginning to change.
The philosophy behind free software basically states that the end user should be free to use it as his/her requirements warrant. This includes the right to modify it if necessary. That implies access to the source code. This is what the "free" implies. It does not imply "zero cost". It implies freedom. As Richard Stallman, founder of the GNU project succinctly put it, "free speech, not free beer." More info on the guiding principles behind this effort is available here.
The most important thing from a software professional's point of view, however, is the fact that with such a model, where all your users have access to the source code, is that you essentially have the services of an army of software developers, who might spot mistakes in your code that you may otherwise miss out on. The famous programmer Eric Raymond puts it thus:
"Given enough eyes, all bugs are shallow."
This is part of what is probably the most famous argument for this model of development : a paper by Raymond called "The Cathedral and the Bazaar", which contasts the ivory-tower, secrecy dependent style of producing software (the "Cathedral" style) with an open, peer-reviewed mode (the "Bazaar" style)
Netscape, as earlier mentioned, has publicly committed to supporting the Bazaar model of development with the release of the source code for its Navigator 5.0 browser. The announcement is here - and it seems to be paying dividends already. The browser has already been ported succesfully to several Operating Systems, and various proprietary pieces of code that Netscape was constrained to remove before releasing the source are being worked upon to make them open, too.
The latest status of the Netscape Open Source project is available here.
Why, then do people spend enormous amounts of time and effort coming out with software that they then make available for free to the world at large ? The answer probably lies in two factors: the sheer joy of hacking [note: we do not condone the usage of the term "hacker" to denote people who break into networks. The correct term for such people is "cracker". A hacker is somebody who enjoys problem-solving - in this context, a clever programmer], and the reputation capital one tends to build up by being associated with prestigious projects. This could even have commercial implications, as we shall see.
Expending enormous amounts of time and effort to produce great software that one then releases to the world is very noble indeed. But how do such programmers make money ? They need to eat as well, right ?
Well, the Open Source model of making money is a little different from the usual closed software model. (are you really surprised ?) You would, as an Open Source programmer, make money as a consultant, by helping people get the best out of their Open Source software, installing and customising it for them, and by training them in its use. You could even add value to an Open Source package and SELL it. As long as the result is Open Source as well. (Remember, "free software" stands for freedom, not zero cost.)