tags:

views:

238

answers:

8

Hi there ,

I have a question that always bugged me in open source development.
Why do we have :

  • 10 different Browsers
  • 20 different Instant Messenger
  • 6 different IDE's for a singe language
  • more than 15 distributions of Linux
  • .....

wouldn't be nicer , when we have only 1-2 alternatives to the commercial products so open-source could be a better competitor to ... lets say Photoshop . ( gimp is far away from that )

+1  A: 

There isn't some over arching OSS committee that decides what developers should spend their time on, each person is free to do what they like.

If there was a committee, there likely wouldn't be anywhere near the quality in many of these products.

Rich Bradshaw
+7  A: 

Diversity is a motor of evolution :-)

Pierre
+3  A: 

Many reasons:

  1. Integration with desktop environments (KDE apps vs Gnome apps).
  2. "I can do better" syndrome. Closely related: "scratching an itch", reinventing a wheel to learn about how wheels work.
  3. Politics and project leadership issues (OpenBSD vs NetBSD, GLIBC vs EGLIBC).
  4. Different vision: solving slightly different problems (GLIBC vs uClibc).
  5. Incompatible licensing.
Alex B
+1  A: 

Its the thought behind OSS that you can do what you want - write software that does what you need. Since everyone needs other things in an IDE or Browser - it is good to have more than one. Under the hood it mostly becomes back to one.

As 6 Browsers do use two libs for web rendering, mainly gecko from mozilla and webkit as alternative.

More than one IDE for one language - but under the hood its the same language-compiler, the same libraries.

BeowulfOF
+11  A: 

No, it wouldn't.

Open software development works in an evolutionary way. Although a lot of effort is wasted, there are some strong benefits:

  • Projects learn from each other. For example, firefox's tabs are now part of every modern web browser.
  • Bad software fades away quite quickly, without any damage to the community. If there was only one software project going on, and it would have failed, we would have no other options.
  • It encourages entrepreneurship and creativity of enthusiastic developers.
  • It encourages niche software. Think of all the Linux distros which serves special needs - rarely spoken languages, users with disabilities, exotic platforms or specialized hacking techniques.

A nice reading about it would the The Cathedral and the Bazaar by Eric S. Raymond.

Adam Matan
A: 

I agree with many of the above points but it all boils down to one thing. Money

Oliver
A: 

Because it's not a company trying to dominate the market in every aspect. Everyone scratches their own itch.

Someone can start a project to develop a tool that he needs because nothing else quite does what he really wants, then it can grow and more people can contribute to it.

hasen j
+1  A: 

It is important to realize that open source projects are rarely written from scratch, and there really isn't as much duplicated effort as it might seem. Because people are free to use other open source software in their projects, they are able to concentrate on just the parts that they are interested in, and reuse the other parts from other projects.

For example, there may be numerous web browsers, but many of them use the same layout engine. There may be many music players, but those developers aren't writing their own MP3 codecs. Someone has an idea for an improvement over what already exists, and they start a project to implement that idea, using the best of existing open source projects to fill in the gaps. Open source software makes this possible. It is actually proprietary software companies that often spend much of their time reimplementing the same common functionality that is found in their competitor's products, since their competitor's product is not open source and the code cannot be reused.

mark4o