Tuesday, November 28, 2006

Linux: Evolution

An hour ago I was talking to a friend and work colleague which is still a student and he was working on some practical homework for his "Operating Systems" college course. He had to write some small C program for querying a time server using NTP protocol over TCP or UDP under Linux.

Now the connoisseurs know what I am talking about, however the point of my story is different... As I said, I was talking to this friend of mine and he asked me for some assistance in installing a chm reader under Linux. This might not look like such a big deal for a SuSE or Ubuntu user, they can just search it and install it using their package managers, but my friend uses Slackware, so actually this simple thing turned into a bit of a drag because of the package dependencies that had to be installed manually. Well, I must say I was a bit sarcastic with him and laughed about the primitive way to do things in the Slackware distribution. Don't get me wrong, Slackware is a great professional distribution which has it's purposes but desktop isn't one of them. This whole thing reminded me of how I used to do things when I was a student taking the same course and also brings me to the real point of my story.
Back a few years ago (2001) when I had to do kind of the same practical homework as my friend using C under Linux, the distribution I had then was RedHat 8 and I had an old Pentium@166Mhz PC which wasn't much help so I had to do everything from the text interface because I couldn't get Gnome running properly - my video card was not supported. I did the editing with Joe and Midnight Commander and compiled everything with gcc. Let's not forget the ubiquitous "man" because back then I did not even have an Internet connection at home (could not afford that from a student's salary). I used to get documentation from the school laboratories where we could browse freely and use it to get things done back home. One more important tool I used back then was a mp3 player running in text mode (I can't remember it's name anymore). It could even play songs from play lists which I also used to edit with Joe. Another important aspect back then was the tedious installation process that had to be followed in order to see that familiar command line. Ahh, good ol' days...

Well things have come a long way since then, we now can enjoy some smooth and easy installation processes for some Linux distributions which automatically detect your hardware, Internet connections and printers and can be done in 30 minutes. Also the desktop interfaces and tools have come a long way, we now have Open Office, package and update managers great looking user interfaces and a plethora of other useful tools which come bundled in the distributions or can be downloaded in a few clicks from the Internet repositories. I have been following the evolution of the Ubuntu distribution since Hoary Hedgehog and I've seen some very nice improvements in just an year...

The point of my story being unfolded, I would like to say that things are getting better and better and I really hope that the new distributions keep up this good work and bring more users to thewonderful world of Linux/GNU. I hope you enjoyed this evolution as much as I did and that this story brought back some nice memories for some of us...please feel free to leave some comments of your experiences.

Sunday, November 26, 2006

Does FOSS make coders starve?

To code or not to code free and open source software (FOSS); that is the conundrum in which you may find yourself if you are a coder and wandering: "Well, this free software idea sounds great and noble, but who's gonna feed me if I can't sell my programs?" Everybody seems to discuss how you can reduce costs of ownership and of development with free and open source software, but rarely we see or find information about how do coders that write free software can sustain themselves by doing it.

I also like the idea of free software that can be changed, redistributed and shared at will very much, in fact I like it so much that I want to make a living out of writing free and open source software. This means that I also asked myself the above question and also did some research on the ways you can make profit from free software. Next, I am going to present you with my views on the FOSS model and a few ways to make a living out of it.

First of all, open source software is actually commercial software, open source licenses do not preclude the commercial exploitation of software, they are not anti-commercial they are anti lock-in (anti lock-in is a better term for proprietary software – see Brendan Scott's article on the Open Source Law site ). This means there are some good ways to make money by using the FOSS development model without the need of selling software licenses.

Companies and coders developing free software have been offering various services alongside their programs, which include a wide range of options starting with books and documentation and going as far as customizing their software for various clients, offering them solutions tailored to their specific needs. You may say that the customers paying for these customizations are wasting their money because they can actually take the sources and change them by themselves. Let's not forget that not everybody is a coder and not all companies have or can afford to sustain an internal IT department with developers on their payroll. Sometimes it's just easier to have a specialized company do the customizations for them.

In today's market you can see some major software companies that have adopted the FOSS model and are making money from it. Companies like Red Hat, Novell, IBM and Sun are all involved in producing free and open source software. Along with their free software variants they offer a wide range of their software versions customized for enterprise wide use and with long term support for their software. Their customers do not actually buy software licenses, they buy the support that the software companies offer, always having the option to use the versions without professional support.

Another proof that the FOSS model of software development works is the tendency of many software companies to adopt this model for some of their products and also use or contribute to free software, which has been happening lately. The newest contribution to free software has been made by Sun Microsystems who decided to finally release their Java line of products under the GPL license model. I believe this is great news and I personally am glad they decided to make this move since I believe we can all benefit from the innovations that are going to come to Java from the community in the future. One immediate benefit of this will be the inclusion of the Sun JDK's in the Linux distributions, making the development and releasing of free software under this platform easier for the Linux programmers who like the Java platform. Other than Sun's contribution to free software we can see some examples of other large companies that have been friends of free and open source software: Mozilla with their line of products - Firefox, Thunderbird, Sunbird and Seamonkey, IBM with their contribution to the Eclipse project, Canonical Ltd. with their most known project – Ubuntu, Red Hat with their Fedora Core distribution and recently with JBoss application server – these are all just to name a few.

Finally, I would like to close my argument with the hope that I at least stirred your curiosity about the free and open source software model and that you will consider it as being a great way to promote innovation, competition and progress without being locked in by using a “proprietary” software solution or platform.

Playing for Change