Tuesday, May 25, 2004

open source? why not ... and then again why?

Again water cooler talk - revolving around free (and open source) software vs. commercial non-free software.

I am not a software engineer by any standards, but have had a small amount of exposure to the process of software development (particularly for scientific applications). yet I have always wondered how (or why) people agree to make software open source or free for that matter (with or without the source). The company I work for used a set of open source libraries called FOX for developing the GUI and design environment for their scientific software, and I used to wonder what we gain from using freeware or giving software we make for free or making i open source. Also, there are hundreds of and freewares and public domain open source softwares that are distributed under various public licensing methods - prominent examples include the Linux OS, GNUplot, Python etc. Similarly, for scientific applications, there are hundreds of numerical recipes, toolkits etc.

while there is great demand for free software, there is even more demand for open source software - and yet what I think is worse is that there seems to be a growing number of people who probably despise those who make and sell commercial software. I look at software in the same light as any other intellectual property, and if someone decides its worth making money out of - so be it. I am still trying to understand the mindset which decides that even very intricate and elaborate software should be made freeware. I myself use a lot of freeware tools and utilities for all kinds of small (but important) tasks, and I wonder where I would be if the developer had not made them free. But I sometimes try and put myself in the developer's shoes, and I am not entirely convinced that I would have offered those same utilities for free! perhaps if I develop software long enough, some things seem trivial enough that I would not think twice about giving them away for free!

look to see more posts on this topic ... I hope to read and understand more on this issue, and perhaps, my views at the end of it might have totally changed.

I have changed this entry since the first time I posted it, since I had mixed up open-source/freeware a bit. Here are two principal questions I had:
a) developers make their software freely available (this is often not open source, only free) - what is their motivation behind this?
b) motivation behind the opposition to those not providing open source software [IS THIS PREDOMINANTLY AN ANTI-MICROSOFT STANCE?].

5 comments:

Anonymous said...

Prashant correctly points out the difference between open source and freeware. If I make a piece of software and allow people to use it for free, its still MY software. If tomorrow I decide to make profit from it, I can ask people to purchase a licence. On the other hand, an open source software is released and can't be un-released. Anyone is free to work on it as long as the resulting work is also released under a GPL.

You might find Mark Pilgrims piece an interesting read: http://diveintomark.org/archives/2004/05/14/freedom-0
This was motivated by the recent change in the licensing policy of Movable Type 3.0, as against Wordpress - an open source blogging tool.

You might also find the following link interesting: http://daringfireball.net/2004/04/spray_on_usability
John Gruber articulates what ails with a lot of open source efforts. An excellent article. Also read its followup and some other related articles. Makes for a great weekend read.

Ciao
Niket

Anonymous said...

BTW, its not truly anti-Microsoft stand.

It works like this: I create a piece and decide to release it under GPL. Probably because I think this will help other people to do things more easily, instead of reinventing the wheel. Then you comes along, find my work useful, improve on it and release it under GPL too. Then Prashant does the same... he wants some feature and wants to improve some other feature... does that, releases as GPL. And it grows.

Second reason is that we find a software that suits our need. But its either buggy, expensive or lacks vital support. Hence we decide to pool in our expertise and create a better product. Some others come along and help us out too. We feel that we are doing the right thing and that people will benefit from it. We release it under GPL. Others find it useful, use it, tweak it, hack it... each time releasing their little hacks under GPL. In almost Darwinian style, the useful hacks stay, others disappear into oblivian and the product grows.

While there are many other ways, these are two main ways how an open source project starts.

Aditya said...

prashant/niket - thanks for the clarifications, and links. also prashant, good point about making a separate entry for the revised version. i will probably follow that practice in the future.

about the microsoft comment:
i certainly see the advantages and intentions of making software open source. yet, for most (i say most, not all) - making software open source simply seems out of the question for most commercial softwares. after all, corporations are not in the business of pursuit of better cleaner code, or benefit of the end users. these are but mere means to the final end of making money. from where i stand right now, making software open source (free or not) might cost them more than they would be willing to shell out for the benefits.

the microsoft bit came up simply because that seems to be the most blatant example (windows OS v/s open source linux OS) available

Anonymous said...

Aditya,
I don't quite agree with your statement that seems to imply (at least I read it so) that corporates are here to make money, so writing good codes is not a priority. Its only due to deadlines and human falliablity that the codes turn out bad. Any company worth its salt knows that in the long run, a cleaner code is much more cost effective.

Its an incorrect notion that the Microsoft codes are badly written (you didn't imply this, just an example coz a vast majority think "MS/Win = Bad Code"). I don't have the source, but I remember reading an analysis in February about the part of windows code that got leaked. By all standards, it was a well written code. Most hacks that were required to make the code work were clearly marked as hacks and the code was well commented. A number of legacy issues were due to the need to support older softwares and hardwares. One has to realize that Microsoft system supports myraid of devices and softwares... that won't be possible if the code was crappy.

Again, Microsoft example coz its the best available to prove a point.

As you read from John's site, the problem with a number of open source softwares is that they are not very user-friendly. They often tend to be only as good as the person hacking and using the system needs it to be. This person is clearly an expert; her requirements and expectations are different from those of Jane Doe.

Clearly linux is more stable and more secure than Windows. But what OS does your personal laptop run?

Success stories of open source initiatives are usually limited to those that are run more as corporates than as a community. The advantage of an open source corporate (my term) is that they retain most of the advantages of the open source community, while creating a commercially viable product.

- Niket

Anonymous said...

So if I make a living as a commercial application developer, and I am working with a team of 800 other "programmers/designers/engineers" and just as we are about to release version one of our product, an opensource product comes out that does the same thing, 800 people lose their jobs. So for every "commercial-grade" application in the open source community, there are 800 programmers looking for work (yes this is an exaggeration). I have worked on open source projects, but only early in my career, and really as a chance to learn a new technology/programming language. It was not in an intent to make a better mousetrap. I think opensource is great for cutting your teeth and learning, but if the open source community continues to write better and better stuff, it will put commercial application programmers out of work. (BTW .. many commercial application developers are also open source developers so they are in essence digging their own graves)Its not just about big corporations making money. Its about people trying to feed their families as programmers.