Click here to Skip to main content
15,899,126 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 != 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 
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 
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
Faster bug fixes
More people will use the program
The wishes of the general community will be automatically integrated in the program
Less development costs
Better beta testing


Are there references to back this up? I think I'll take these one at a time:

Faster software development:
Unproven. Given a co-ordinated team of developers working on a well-defined/organised software project (regardless of Open-Sourceness), development time is insignificant compared to the other stages of a project (design, requirements analysis, testing/QA). Therefore improving development time doesn't mean much in the overall lifespan of a software project. In addition, having arbitrary third parties providing code patches for new features takes additional time to verify, audit, integrate and test.

Faster bug fixes:
Wishful thinking at best, and if an Open Source project has a faster turnaround time on bugs over an equivalent Closed Source project, it's more likely due to a lack of regression testing, and a glut of personal heroics than any intrinsic superiority.
Given a suitably detailed bug report, bug fixes take the same amount of time to reproduce, fix, and regression test, regardless of the Open-Sourceness of the software. Third party patches still need to be tested, reviewed and integrated, and may actually take longer if the patch is complicated, due to the time needed to take to understand the patch and insure that it does not contain anything undesirable.

More people will use the program:
Because they can see the source? Most people don't know what to look at in source code anyway, so why would open sourcing it give you additional users?
The only reason I can think of is if someone will only use open source software, on either ideological (eg, Richard Stallman?) or security auditing (eg, military/government) grounds. In the case of the latter, arrangements can be made to audit the code without needing to give it to all and sundry at the same time.

The wishes of the general community will be automatically integrated in the program:
How? Because if the general community of an application consists of normal people, most normal people can't code, design or test software, and so has no effect. This only really applies to developers tools, where the general community for the tool knows about software development in the first place. And automatically?!?!? You can't even claim that the feedback is better, because a well organised Closed Source team can encourage good feedback too.

Less development costs:
Only in monetary terms, and only because some people contribute in their spare time. If people weren't willing to contribute in their spare time, Open-Sourced software would cost just as much to develop as Closed-Source software. In terms of time and energy, the costs are equivalent.

Better beta testing:
Again, unlikely. Good coders are rarely good testers (cf Peopleware article on Software Testers), and finding good testers is hard. In any case, the Open-Sourceness of the software does not have any bearing on the quality of the testing, and a well organised, directed beta test does not require it.

----

Does this mean I am against Open Sourcing software? No, I just accept that it isn't the Silver Bullet of Software Development so many are claiming, or that it is fairy dust to magically make my software better.

There are times where Open Source is obviously preferable - for reference implementations of software standards as one key example (so developers can improve on the reference implementation for their own applications), and as a way of examining government software under freedom of information acts as another (as having this sort of transparency is important in a democratic nation).

--
Ian Darling
"The moral of the story is that with a contrived example, you can prove anything." - Joel Spolsky
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 
GeneralRe: Disagreements Pin
theJazzyBrain3-Jun-04 4:40
theJazzyBrain3-Jun-04 4:40 
GeneralRe: Disagreements Pin
Jim Crafton11-Nov-03 7:12
Jim Crafton11-Nov-03 7:12 
GeneralRe: Disagreements Pin
Almighty Bob11-Nov-03 7:13
Almighty Bob11-Nov-03 7:13 
GeneralRe: Disagreements Pin
Ian Darling11-Nov-03 8:09
Ian Darling11-Nov-03 8:09 
GeneralRe: Disagreements Pin
Almighty Bob11-Nov-03 8:32
Almighty Bob11-Nov-03 8:32 

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.