Saturday, May 10, 2008

Can Free/Open Source Software Innovate

The other day in the bookstore I was leafing through a book, and it made the argument that Free/Open Source software was very good at creating (possibly better) copies of existing programs, but wasn't good at breaking new ground.

Personally, I think this argument is stupid. While Tim Berners-Lee's first WWW browser wasn't released under a "free" license, but it wasn't really closed-source either: His announcement said: "If you're interested in using the code, mail me. It's very prototype, but available by anonymous FTP from info.cern.ch. It's copyright CERN but free distribution and use is not normally a problem.", and the (later dominant) NCSA Mosaic was released under an open source/free license. Web servers were similarly free, and honestly, nobody has ever even caught up to Apache and the other free web servers in terms of quality. Netnews was mostly run on free software, as was much of the internet (much of that code from Berkley). Clearly that was innovation.

CVS (the version control system) was open-source, and was incredibly innovative, and there's been incredible amounts of innovation in that realm by open-source projects. Cfengine (the system management tool) was pretty innovative. Perl. Python. Ruby. Rails. PHP. In games we have nethack/rogue etc (which went on to inspire the creation of Diablo), as well as the many MUDs.

So why do people have this absurd notion that Free Software can't innovate? I can think of a couple reasons. The main one is that FOSS development is greatly affected by communication costs. The simpler sharing your source code is, the easier a distributed development model is. Thus, the amount of Free Software written, and the ease of the Open Source Software development model shot up enormously along with the growth of the internet. So anything that pre-dates the internet wasn't going to be developed as Free Software. So yes, Free spreadsheets/WYSIWYG wordprocessors/etc. are fairly derivative. Proprietary software had a substantial head start. But in internet technologies (especially on the server side) Free software has the lead, since you had the internet available to collaborate over if you were writing an internet server.

I suspect proprietary development also allows more rapid development of mid-sized software, so Netscape got all the fame for the Web, because it was able to step in at the right time and make a better browser than Mosaic quickly. But that doesn't mean it's any more innovative.

And, of course, people think it because it's what Microsoft tells them to think ;)