Click here to Skip to main content
15,899,124 members
Articles / Operating Systems / Windows
Article

Why Open Source?

Rate me:
Please Sign up or sign in to vote.
2.68/5 (58 votes)
1 Jun 20045 min read 134.7K   28   77
An explanation of the idea behind Open Source, the benefits of it and some examples of replacement Open Source programs and libraries.

Open Source logo (opensource.org)

Introduction

I bet that many of today's programmers have heard about Open Source, but don't want to use the principle in their programs. That's a shame, because it's a beautiful concept.

I've tried to make the information in this article as brief as possible, so don't look weird at the many lists in this article. This is mostly information put together from various sources, just for usefulness. And, this is my first article and English is not my native language, so don't be too hard on me. Any comments (good or bad) and suggestions are always welcome!

For those people who don't know what the Open Source concept is, here is a brief description.

The idea behind Open Source

The idea behind Open Source is that by giving the source of a program away, people can learn from it, improve it, extend it and fix bugs. The Open Source concept goes hand in hand with free software. Free like in freedom, not price.

For example: Linux. Yes, Linux is Open Source too. Linus Torvalds developed the base of this operating system, and gave away the source. Currently, multiple major companies are working on their own Open Source versions of Linux (SuSE, Red Hat, Debian and Mandrake are some examples), and even many more people are working on it too. Thanks to this, bugs are fixed very fast (advanced programmers even fix bugs while using Linux), and functionality is extended.

Your own protection

When you give away the sourcecode of your very own program, how can you be sure that people won't steal it and say that it is their own? By using a license. A license protects your rights, and can help you in a lawsuit against anyone who infringe these rights. There are many licenses that may be used for Open Source programs. You can find them here. The two most widely used licenses are the GNU General Public License (GPL) and the GNU Lesser General Public License (LGPL). Here a short explanation of why these licenses are important:

  • People may copy your code under the same license.
  • People may modify and distribute the (modified) source code.
  • People can't say that they wrote your code (it's copyrighted or 'copyleft').
  • Patents may not make the program proprietary, so patents must be licensed for everyone's free use.
  • People can't change the license applied to the source code.

The difference between the GNU General Public License (GPL) and the GNU Lesser General Public License (LGPL) is that the latter permits use of the source code in commercial programs, while the GPL does not.

Why applying the license to your company's program(s)?

If your boss agrees upon applying the GPL or LGPL to the company's program(s), then the company will have the following benefits:

  • Faster software development.

    Many people work on the same project.

  • Faster bug fixes.

    When a bug is found, there are many people available who can fix the bug in no-time!

  • More people will use the program.

    The program's sources are available, and people help develop the program. Through this, many more people will get to know about the program.

  • The wishes of the general community will be automatically integrated in the program.

    Because the general community develops the program, the program will be more likely to satisfy the general community.

  • Less development costs.

    People help developing, mostly for free.

  • Better beta testing.

    Many people use the program. People from beginners to experienced users.

Implementing the GNU (Lesser) General Public License

If you want to put your program and source code under the (L)GPL or any other license, then you'll have to put a short notice at the top of each source file. You will also have to include the license itself, and put a short notice in the documentation. You can use these steps for any license, but since the GPL is the most common used license, I'll discuss that here. Follow these steps:

Source code files

Add the following notice to the top of your source files, and change the information to suit your program:

Copyright (C) [year] [name of author]

This program is free software; you can redistribute it 
and/or modify it under the terms of the GNU General Public 
License as published by the Free Software Foundation; 
either version 2 of the License, or (at your option) any 
later version.
This program is distributed in the hope that it will be 
useful, but WITHOUT ANY WARRANTY; without even the implied 
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE. See the GNU General Public License for more 
details.
You should have received a copy of the GNU General Public 
License along with this program; if not, write to the Free 
Software Foundation, Inc., 59 Temple Place, Suite 330, 
Boston, MA 02111-1307 USA

Also mention how you can be contacted by paper and electronic mail.

Splash screen/About box

On the program's splash screen, or if there is no splash screen used in the About box, put the following notice:

[program name] version [versionnr.], Copyright (C) [year] [author's name]
[program name] comes with ABSOLUTELY NO WARRANTY.

And mention how the user can let the program show the license (or provide a 'License' button on the About box).

You may also want to place the OSI-approved or Open Source logo on your splash screen/About box. You can find it here.

License file

You must add a file containing the full license you use to the files that accompany the source files and your program. Usually, this is a file named COPYING.

Copyright disclaimer

If you work for an employer or school, then you should let them sign a copyright disclaimer. The how and why of this disclaimer is explained at the end of the GPL.

Open Source programs

Here is a short and incomplete list of Open Source programs that might replace (expensive) programs.

  • Windows -> Linux.
  • InstallShield installers -> NSIS (Nullsoft Scriptable Install System).
  • Photoshop & Paint Shop Pro -> The Gimp.
  • Microsoft Office -> OpenOffice.
  • Filesharing -> E-mule and Shareaza.
  • .NET Framework -> Mono.
  • MSN Messenger & AIM & ICQ -> Gaim.

Thousands of Open Source programs can be found at the following sites (among others):

Discussions

I write this update, now many months since I first wrote this article. Open Source has always been a point of discussion, and will always be. As it worked out, this article got the best votes and the worst votes, and the rating got stuck somewhere in the middle.

There was one goal I wanted to achieve by writing this article, and I met that goal: to make people think about Open Source. Why Open Source? Figure that out by yourself. This article became part of the discussion, and I hope that this discussion will be continued for a long, long time...

Links and resources

You can find any useful links here:

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Software Developer
Netherlands Netherlands
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralRe: Open source is a hell Pin
Member 280591515-Mar-10 0:44
Member 280591515-Mar-10 0:44 
GeneralSoftpanorama: (slightly skeptical) Open Source Software Educational Society Pin
Tim Smith11-Nov-03 7:02
Tim Smith11-Nov-03 7:02 
GeneralOpen Source != GPL Pin
Nemanja Trifunovic11-Nov-03 5:35
Nemanja Trifunovic11-Nov-03 5:35 
GeneralRe: Open Source != GPL Pin
Member 26118811-Nov-03 6:41
Member 26118811-Nov-03 6:41 
GeneralRe: Open Source != GPL Pin
Nemanja Trifunovic11-Nov-03 7:04
Nemanja Trifunovic11-Nov-03 7:04 
GeneralRe: Open Source != GPL Pin
Member 26118811-Nov-03 7:18
Member 26118811-Nov-03 7:18 
GeneralRe: Open Source != GPL Pin
Nemanja Trifunovic12-Nov-03 5:18
Nemanja Trifunovic12-Nov-03 5:18 
GeneralRe: Open Source != GPL Pin
Gamaliel Masters9-Feb-04 18:39
Gamaliel Masters9-Feb-04 18:39 
Not necessarily "mostly used". BSD & Apache seem to be fairly popular from what I've seen, and there are quite a few others, as I'm sure you know, although GPL seems to be the "poster child" associated with open source.

I personally find it rather unfortunate that it is used for as much software as it is, and I often wonder whether the majority of programmers who are releasing under it understand the real repercussions.

I love the open source movement and spend many enjoyable hours browsing sourceforge. However, as may be obvious, I (personally) have serious issues with the GPL, and to a lesser extent the LGPL, to the point that I refuse to use any library released under the GPL, and try to avoid LGPLed libraries when possible.

I have yet to see the difference between "Free" in the freedom sense, and Free in the "costs nothing" sense, especially when applied to the GPL. The GPL makes a big deal out of the difference, in the second paragraph, to wit:

"When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish)..." -- GPL Version 2

And from your post:

"... But open source is free as in FREEDOM! Freedom to learn from it, adapt it, distribute it and use it. NOT free like no money; gratis!" - Daniël Pelsmaeker 11 Nov '03

Note the inclusion of "DISTRIBUTE IT" in the list of freedoms. Explain to me how this does NOT refer to price. Since every person obtaining the software has the right to redistribute it and charge as well, the license DOES force a free price in a practical sense.

Exactly what is going to happen if I am charging for the exact same thing that someone else is charging less for? In general, the wise consumer will choose the cheaper provider. Now, what happens when I am charging for something that everyone else is giving away for free? In other words, why would ANYONE buy the exact same thing from someone when they can get it for free from someone else?

What this really means, is that the software IS always free (meaning price), but that you can charge whatever you want for related services. This could mean the "service" of distribution (ala Linux Distros), and you can charge for the "service" of technical support. You can, of course, charge customers to implement features or bug-fixes, but in that case what you are actually a doing contracted development work, and in all of these cases, anyone with a mind to is free to use your code to offer the same services at a potentially lower cost.

It's a classic example of "screw the creator for the benefit of the consumer" which I see as a knee jerk reaction to the opposite tenancy of big business to "screw the consumer for the benefit of the creator" (which really means the benefit of the stock-holders and upper management).

The GPL talks a lot about "Freedom" while in it's own way denying freedom. In fact, I personally consider the big deal made over the difference between free use and free price to be a blatant attempt to lull casual readers into a sense that this license protects rather then destroys freedom, when in fact the GPL does more to destroy YOUR freedom (as the software creator) then it does to protect it.

In reality, every license, the GPL included is about restricting freedoms, not granting them. The only real difference is who's freedoms get restricted and who's get ensured, because in general the consumer and the developer's freedoms are orthogonal to each other.

The traditional closed source commercial license grants the most freedom to the copyright holder (I don't say author because authors regularly transfer all copyrights in return for a paycheck). Whoever holds the copyright can do whatever they want with the code, but this is at the expense of everyone else.

At the other side of the scale, "public domain" ensures that anyone can use it any time for any purpose, and is probably the closest to "total freedom" you can get.

The real use of the GPL, as far as I can see, is to restrict ANYONE'S ability to sell the software. In other words, it is useful to ensure that code you are giving away and are not making money off of CANNOT be used by ANYONE to make money, directly (by selling it as is) or indirectly (by selling a product which incorporates it), ever. This is fine, if that's what you want (and I fully support your right to release your code under those provisions), but I don't think it's appropriate for the vast majority of development, and programming libraries especially.

The dedication of the GPL to anything but freedom is very apparent in it's parasitic nature. The parasitic nature of the GPL means that using even one line of code which is under the GPL DENYS your freedom to release the original code you have written under any other arrangement. I dislike other people attempting to control what I can an cannot do with MY original work.

The parasitic nature of the GPL, to me, reflects a attempt at dictatorial control which is not even rivaled by the "Big Evil Corporations". The equivalent on the commercial front would be a clause in the license agreement that linking any of their libraries requires that a product must be sold, and that the source can never be released.

One of the kickbacks to this is that it can lash back and restrict your freedom regarding your own code. Not only is your code forced under the GPL when you use any GPLed code, but consider this.

You develop an application and release it under the GPL. Later, you decide you want to sell the application. As the copyright holder you can release the code under a DIFFERENT license, so this is fine.

However, there are a couple of caveats. First, You cannot "roll back" the GPL license. Once something is under the GPL, it's governed by it forever. This means you are competing with yourself (your new commercial product is competing with your early free project).

Let's say this doesn't cause you any problems because you can make improvements to the core product you released under the GPL which give enough differentiation to be able to sell your improved version.

However, after starting on your development you look around and see that other people have created products using your code which they have released back into open source, as per the GPL.

However, you are not dealing entirely with your code, any code "added" to your product by others is also under the GPL (because your original product required it). Now, if you want to incorporate any changes from these "updated versions", or even any bug-fixes, the parasitic feature of the GPL dictates that you cannot sell your updated product, but must instead release it under the GPL as well.

This is because your right to use your original code is guaranteed by your copyright, but your right to use anyone else's modifications of your code comes to you through the GPL and hence suffers the restrictions of the GPL.

This means it's very dangerous to put the GPL on ANYTHING that you think you might eventually want to sell. If you can live with the fact that others might be able to make a profit off of your code, it is probably better to release under a freer license which allows use in commercial contexts since that will allow you to re-use any modifications which are perpetuated under the same license in your own commercial products.

I am not against open source, nor am I unaware of the problems with commercial close source development. Ultimately, I feel that they are both flawed and a widely "effective" license has yet to be invented. Until that time, they both have their place.

At the core, I feel that open source in a wonderful thing demonstrating the goodness of a great many programmers out there. That these people are willing to give away the fruits of their effort is extremely laudable, but at the same time, in a non utopian world, open source has very little revenue producing viability in it's current state.

I will leave you with a philosophical thought which applies not only to software but to life in general.

It is an unfortunate thing that evil will often beget, not only great good, but also a greater, or at least equivalent evil in response, and equally unfortunate that power-hungry dictators often march under the banner of freedom, but neither is at all uncommon. Hence, the wise man observes carefully and draws his own conclusions. It reminds us of the truth of that old saying: "The price of freedom is constant vigilance".

And The standard disclaimer: The opinions expressed here-in are my OWN, although I do not appear to be alone in some of them. I'm not attempting to start a flame war and while I invite you to share your opinions, it is VERY unlikely you will be able to change mine, so let's not get religious about it.

Gamaliel Masters

"If I were to disprove 'I think, therefor I am', would I cease to exist?"
GeneralRe: Open Source != GPL Pin
Member 26118810-Feb-04 10:08
Member 26118810-Feb-04 10:08 
GeneralRe: Open Source != GPL Pin
RuskieF4-Jun-04 2:11
RuskieF4-Jun-04 2:11 
GeneralRe: Open Source != GPL Pin
Member 2611884-Jun-04 5:34
Member 2611884-Jun-04 5:34 
GeneralRe: Open Source != GPL Pin
RuskieF4-Jun-04 6:22
RuskieF4-Jun-04 6:22 
GeneralDisagreements Pin
Ian Darling10-Nov-03 23:00
Ian Darling10-Nov-03 23:00 
GeneralRe: Disagreements Pin
Member 26118811-Nov-03 0:51
Member 26118811-Nov-03 0:51 
GeneralRe: Disagreements Pin
jkbull11-Nov-03 1:18
jkbull11-Nov-03 1:18 
GeneralRe: Disagreements Pin
Ian Darling11-Nov-03 3:00
Ian Darling11-Nov-03 3:00 
GeneralRe: Disagreements Pin
Member 26118811-Nov-03 3:32
Member 26118811-Nov-03 3:32 
GeneralRe: Disagreements Pin
Andreas Saurwein11-Nov-03 4:21
Andreas Saurwein11-Nov-03 4:21 
GeneralRe: Disagreements Pin
Member 26118811-Nov-03 4:28
Member 26118811-Nov-03 4:28 
GeneralRe: Disagreements Pin
Andreas Saurwein11-Nov-03 4:38
Andreas Saurwein11-Nov-03 4:38 
GeneralRe: Disagreements Pin
Daniel Turini11-Nov-03 6:24
Daniel Turini11-Nov-03 6:24 
GeneralRe: Disagreements Pin
Andreas Saurwein11-Nov-03 6:34
Andreas Saurwein11-Nov-03 6:34 
GeneralRe: Disagreements Pin
Member 26118811-Nov-03 6:44
Member 26118811-Nov-03 6:44 
GeneralRe: Disagreements Pin
Andreas Saurwein11-Nov-03 6:58
Andreas Saurwein11-Nov-03 6:58 
GeneralRe: Disagreements Pin
mstephens12-Nov-03 1:41
mstephens12-Nov-03 1:41 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.