Main /
Desktop
Search:  


Defragmenting the Linux Desktop

Several times each year a familiar cycle repeats itself in the Linux world. A new Linux distribution-release/widget-set/framework is announced that is expected to revolutionize the Linux desktop, and pave the way towards world domination.

The reality: Linux is still stuck in the same old rut. No-one can agree on anything: Ubuntu vs Fedora/SUSE, KDE vs Gnome, and lately, Mono vs No-Mono. It makes you want to scream "nothing really ever changes".

From an end users prespective it may seem that the problem is really just an issue of getting that pesky printer or camera working. However, device driver support is really just a symptom of a broader problem: supporting GUI software at all in this Babylon we call Open Source.

GUI Bedlam

Traditionally, Linux/unix evolves from a highly developed command-line oriented system. GUI's are definitely an add on and there is really no standard GUI to program applications against. X11 is really to low-level of a protocol and time has proven it is unsuitable for the development of sophisticated applications.

This has resulted in the development of diverse widget sets as a lot of squabbling over which is the best.

Evolving Distributions

Distributions have evolved into complex beasts. The've gone from providers of static of package collections to dynamic repositories containing many thousands of applications. This is of necessity because Linux GUI applications basically have little in the way of binary compatibility. This means applications must be rebuilt for each distribution and release. However, building applications in Linux typically require managing many dependancies, and this is a major role in provided by modern distributions.

The Development Cycle

In the open source world an application is updated by commiting it's changes to the source repository. Then it must wait for each distribution to pick up these changes and update their own repository. Only then can users running a distribution update their application.

The problem here is that application distribution is out of the developers control. They can not push out a new release without interfacing with the distributors. They also can not easily release multiple versions and let the user decide which version to use.

The process of changing an application in Linux requires that source changes be picked up by each distribution, rebuilt and the repositories updated. It is not feasible to for a developer to centrally rebuild and redistribute an application.

© 2008 Peter MacDonald

Page last modified on April 01, 2010, at 04:50 PM