MYTHS OF OPEN SOURCE

 

( Neil Gunton)

 

from  page  113  of DeveloperIQ(  December-2005)

( www.developeriq.com)

 

-------------------------------------------------------------------------------

  

This is not meant to be an anti-FOSS article, but something that is intended to be an open discussion on FOSS related issues.  There are several myths and facts, which you need to be aware of. Here, we discuss some of the points.

 

1.”If you’re not willing to help fix it, then you shouldn’t complain about it”

 

In any discussion about an Open Source project, someone will pipe up with a complaint about it, yet someone else will reply that you shouldn’t gripe unless you are willing to help pitch in and fix the thing. This is somehow supposed to be the ultimate word, the riposte…but it’s just plain silly in real life.

                                                                                      

Even if we are developers, most of us have real jobs or at least other projects that we are working on full time. We don’t have time to “get under the hood” (see next section) and find out how the Linux kernel works, or work up a patch for Apache, or fix a problem with Perl. However, that doesn’t preclude having the right to criticize (politely and tactfully, of course) how something is designed or works. Constructive criticism is and should be a valid part of the community process and telling people that they don’t have any right to gripe unless they contribute code fixes themselves is just unrealistic.

 

 

 

 2. “Open Source software allows you to get under the hood and fix problems”

 

The idea seems to be that Open Source is better than closed source because you can “tinker” with the code. But how many people actually do this? Hardly anybody in real life! In reality, it’s generally very, very difficult to fix real bugs in anything but the most trivial Open Source software. I know that I have rarely done it, and I am an experienced developer.

 

           Most of the time, what really happens is that you tell the actual programmer about the problem and wait and see if he/she fixes it. Most people do not participate in the development - even for Linux itself, most of the development is done by a very small number of people (in the tens at the most). Maybe you’ll poke around a bit in the code, and if it’s trivial then you can fix it; but again, this really isn’t something your average user is going to do.

 

3.”All software should be free”

 

One of the central tenets of the Open Source philosophy (as it seems to be understood by the average person, at any rate) is that all software should be free. This seems a little unrealistic to me, for one glaringly simple reason; Development takes time and effort, and the rest of the world that we all live in is most certainly NOT free. We have to pay for everything - a place to live, food, clothing, services - you name it. Even artists have a sociallly accepted way to make money and art is possibly one of the closest things to programming. So I fail to see the reasoning behind the suggestion that I should be expected to provide the fruits of my labor to the world for no financial reward. How did that happen?

 

         Well, it’s easy to see the foundation s for this attitude, which are perfectly noble and valid - this all started because some people (RMS et. Al, for whom I have nothing but respect) wanted to share code with fellow developers, which also has its basis in the longstanding scientific traditions of sharing knowledge. Be assured that I am not making an argument against sharing code or doing anything else that you feel like doing. What I do object to is the concept that all code can somehow be developed for “free”, without there being a price to be paid somewhere. So, what is that price in this case?

 

 

                                                                                       I know that I, for one, having over 20 years experience in writing software, find myself in the odd position of realizing that if I write something independently, then there is basically not a chance in hell of being able to sell it or make money directly from it. Sure, I can sell “support”, but to be honest, the idea of answering phones and emails all day really isn’t my idea of a fun time. I grew up in the 1980’s assuming that I would one day be able to write some really cool software, then *SELL IT*, and make some real money for my trouble. But if I were to do that today, then in all likelihood someone would write an Open Source version of the thing, which sort of takes the wind out of any commercial startup. It’s a bittersweet situation, because on the one hand, I am able to build some wonderful software as a result of Open Source but on the other hand, this comes back to bite me in the butt, when I want to write something to be sold for real money… I can understand why the larger software companies are getting very twitchy about Open Source - after all, Linux, Apache, MySQL, PostgreSQL and so on are rapidly becoming mature enough to be real competitors to the major software vendors.

 

 

But where does all this lead? Ah yes, the famous commoditization of Software. So, all software will be free in the future simply because it will be dominated by Open Source and free software. But who is going to pay for it all? You can’t develop in a vacuum, *somebody* has to pay the developers. It seems to me that the only way to do it is for all Open Source developers to be working at large companies, with the large companies, with the large companies paying a salary for the developer to work on the Open Source project for some portion of their time. That’s fine, I have no problem with that concept, but it’s *not* “free”. The software is effectively being supported by the charity of corporations. You trade your independence for the security and safety umbrella of The Big Company. Given the behavior of large companies (the bigger they get, the more amoral they seem to get), is this a very solid foundation? And is it very satisfying for the developers? It basically says that software itself cannot itself directly make money independently, but can rather only be a supporting player in some other business. The only way to make money is to give away the software and charge for support services.

 

 Some argue that there will always be a market for vertical market software (customized, very specific to a particular business), and this is true, but why can’t I write a wonderful new *general* tool and make money from it? Yeah, I know, some will say “Go ahead and try, it’s a free world”. But you know as well as I do that if I am successful then inevitably some kid in his parent’s basement will write his own Open Source version of the thing, for free. We seem determined as a culture to ensure that the only “worthy” software is that developed for free. This may be an understandable reaction to the overarching monopolistic behavior of companies like Microsoft, but perhaps we are overreacting?

 

Here’s the thing: Nothing is ever really, totally “free”. There is always a price to be paid, even if that price is simply the breakdown of the marketplace and the ability to make money from your own software that you developed with your own time and effort.

 

 

 

4.”Open Source software is always better than closed, proprietary software”

 

People rant on and on about how much MS Windows sucks and, it’s true, it does in many respects. But it’s also true that in many respects, Windows kicks Linux’s ass in terms of usability and GUI refinements. It’s widely recognized that the Linux desktop is still a work in progress playing catch-up to Microsoft and people continually wage religious wars on each other’s OSS projects.

 

I think it’s true to say that while many Open source projects are superior to their closed-source approach to a problem can have some benefits. Some of these benefits include having a more focused direction for the team, given the fact that there is (usually) just one manager and team leader, firmer schedules and deadlines, tighter management, profit incentives, salaries and bonus motivations. While this can also be true for Open Source projects, the “design by committee” that goes on with community projects often results in a more bloated and less focused product that tries to be all people. Also, sometimes a simple lack of funds of the part of the developer can hamper development.

 

5.“Scratching the personal itch”

 

This is one of the oft - repeated explanations for why programmers develop Open Source software, and it’s perfectly true that most of these projects get started because they address a personal need of the developer. But is this a good way in general to do things? For example, this implies that most of the things that implemented will have direct relevance to developers and programmers. In other words, it’s no coincidence that most of the Open Source tools out there are developer tools - compilers and other server utilities. TThere are Open Source end user oriented tools, but they have mostly failed to make the same impact as the server - side stuff. The Gimp is surely a fine piece of software, but it has failed to make a dent in PhotoShop’s market, even though it’s free. The Gnome and KDE projects remain a bit of a mess, and while they are making great strides they remain far behind MS Windows in terms of real usability for the kind of “my grandma” users that Windows caters to.

 

A commercial company, on the other hand, can afford to scratch the personal itches of its end users, because they are the ones paying the bills.

 

6.”More choice is always better”

 

One thing that Open Source does is to, well, open up the process of what gets included in the final product. So we have fifteen different editors, several different web browsers, several different desktops, and so on. While this might seem like a Good Thing at first (biodiversity), it could also be argued that eventually trying to reduce the choice somewhat for the end user would also be beneficial. For example, a new Linux user has to choose between all these different packages (e.g. which desktop) without knowing anything about either choice, or else just admit defeat and click “All”, which results in a bloated system. Reducing the choices would reduce the bloat and clutter that seems to be in danger of overtaking the Linux of today - how many CD’s are there now in the average distribution?

 

Choice is good, but a reasonable pre-selection of options is better for people who don’t have the time or inclination to make their computer be their life. Most people, after all, would really like their computer to be more like their toaster. It’s there, you use it, you’re done - move on with the other, more important things in life.

 

7. Conclusion: It’s Not So Simple

 

Some people will inevitably condemn me for putting down Open Source, disparaging the community process and otherwise encouraging the proprietary, closed - source model. I am really doing nothing of that sort. This is just a collection of thoughts reflecting on the process and its consequences, trying to give a little balance and generate more thought.

 

It’s just an observation that things aren’t so simple as they might appear - the Open Source model has its own pitfalls and it’s just as well to consider them rather than stick our heads in the sand and pretend that w3e know all the answers.

 

Criticism is a valid way of participating in the process; we don’t have all the time to “fix it ourselves”.

 

Tinkering with the code is something that hardly anyone actually does, except for the code developers.

 

Saying that all software should be free ignores the hidden price-including your own ability to make a living from writing software.

 

 

Closed-source software can be just as good as, sometimes even better than, the Open Source.

 

Having a lot of programmers “scratching their personal itch” just ensures that a lot of programmer tools get written.

 

 

Sometimes restricting the choices might not be a bad idea.

 

************************************************

 

 

           

     

1