Why does software differ from desktop to desktop environment?

I'm wondering why there are so many applications for the same purpose but for different desktop environments. Like the burning software Brasero for Gnome and K3B for KDE. Isn't this reinventing the wheel all the time? Why not collaborate?


Solution 1:

A more efficient question would be: Why there is so many distributions that look the same except for the logo!

Even though this may have some disadvantages as you said of reinventing the wheel, but this has many advantages. This is freedom which Linux and open source stands for.

This is power of Linux. The diversity, you can find many alternatives for the same application.

This is not weakness instead this is powerful, a person who uses Linux can have many choices to work on.

Plus, each software comes from a different background with different programming language, also developers have their personal attitude.

An important point to list here, that most of applications in Linux are community based, with non-profit developers which means those developers don't have a single company to work in, though collaboration needs union and founding a company to sponsor and direct.

Another note: Also you should note that in really most of these applications are not really reinventing the wheel, most of them depend on the same core packages, differences mostly on appearance. For example, k3b and brasero are both depend on same core package cdrecord and wodim.

Solution 2:

The short answer is because (at least in theory) all the software runs better, more efficiently and more cohesively that way.

The long answer is that the aim of most desktop environments is to provide for most of a user's basic needs and the people who work on these projects have different ideas about how to get this job done. So, they're all creating software that represents their ideals for meeting those needs.

GNOME has Gedit, Brasero and other GTK-based software because it will run smoothly, doesn't require additional frameworks and fits in with what the GNOME developers see as an ideal desktop experience. Meanwhile, KDE has software that's based on QT (another software framework) and is representative of what the KDE folks view as being the better desktop experience.

The reason they're not making software together is because their views of design are totally different. Developing software is both art and science. GNOME, KDE, Unity and any other desktop you can think of is developed by people who are creating what they want to see on the desktop.

And on top of all of that, as I hinted at before, this stuff is all built on different frameworks. GNOME uses GTK, KDE uses QT, etc. When you build everything for the same framework and environment it fits together really nicely and it usually runs a little better. So, keeping the software "in the family" helps development in that aspect as well.

I just use the default Ubuntu desktop (Unity) and I usually don't care if an app is KDE or GTK-specific, though. Whatever software works best for me is what I'll use. You always have that lovely freedom of choice with Ubuntu and Linux in general!