The Lower Desktop, Upper Desktops




   *The Lower Desktop, Upper Desktops*
   (a letter to the Gnome community, in a poor English)

It was about two years while I was more or less in touch with Gnome, and I must say that no other large free software project delivers so much confusion to an outsider. And since Gnome has always been my favourive desktop, I feel obligatory to share with the Gnome community my thoughts that were inspired by some recent posts on d-d-l. Many users and developers agree that Free Desktops have some deep yet obscure problems. Sometimes they call a freedom of desktop choice with a depressed “pick up your poison” phrase. Although everybody agree that troubles exist, a quick look at Gnome 3.0 plans reveals that there is no clear formulation of those troubles, not to say about solutions to them. I have no necessary experience neither authority to point Gnome new directions, instead I want to continue a somewhat radical “rehash” of certain Free Desktop traditions. This process is already going on with the help of freedesktop.org, and the noble purpose of this message is an attempt to fasten it.

   The Ideal Vision
   ================
The ideal vision is a dream... We live in the ideal world that has no troubles. We have an invincible free kernel and a number of sublime desktops that can satisfy every user on the planet. Every such a desktop represent some ideology: one – configurability, another – simplicity, third – lighweightness. All desktops are built on top of a pool of common technologies. It's better to split desktop user-base into two categories: developers and ordinary users. Let's call desktop technologies a “Lower Desktop” and desktops for users – “Upper Desktops”. The Lower Desktop has everything for developers to create an Upper Desktop of their choice. The Lower Desktop is a technology, it has no ideology. An Upper Desktop is an ideology, it has no technology. What parts do the Lower Desktop and Upper Desktops consist of? The Lower Desktop: windowing system, configuration database, MIME database, virtual file-system, IPC, component technology, file formats, language run-times, etc. Toolkits are also here. A toolkit is a Lower Desktop abstraction that makes multi-platform (multi-desktop) development possible. A toolkit provides not only desktop abstractions (widgets and a browser window) but kernel abstractions also (threading, fast low-level I/O). Toolkits use the same look-and-feel engine. An Upper Desktop targets certain user audience by providing user-visible applications that meat well-defined criterion. The range of those applications is limited only by Upper Desktop's ideology: from panels, applets and basic set of utilities to office suites, browsers and advanced administrative tools. An Upper Desktop is also a certification authority – an intermediary that guarantees the user that an application from independent developers satisfies desktop's ideology.

   Artifacts of the Past
   =====================
Due to historical reasons Gnome (as well as KDE) is a mixture of both Lower and Upper Desktop concepts. I dare to say that such complex constructs if not reformed will only stagnate and collapse in the long run. However not all is that bad, some smart people founded freedesktop.org – something missing from Day One but now acting like an anchor in unsettled desktop waters (a truthful panegyric). Freedesktop.org is the Lower Desktop, a foundation for Upper Desktops. Keeping in mind the ideal vision described in previous passages it is now possible to deduce problems of Upper Desktops and suggest solutions. I am not familiar with Gnome internals so I want to leave this task to the Gnome community (if the community is not distracted by my “mental experiments”), but some points I want to mention here myself. As said, I am not familiar with Gnome internals, yet some things are pretty obvious, even at unconsciousness level. You probably remember “Mono Debate” - an epic tragicomedy of inclusion a C# runtime into Gnome. I suppose it is now evident why that culmination of absurd did not happen: a language run-time position is the lowest in the technology stack. (I want to add that existence of Mono is very important to free software, but this is a separate topic.) And the last: the mixture of technology and ideology slowly transforms Gnome from a software project into a political union of several forces (ranging from FOSS powers to individuals) who play this meritocracy game: make-contribution-gain-leverage. Instead of being a community of friends pursuing shared goals, Gnome is turning into a Wild West, a dangerous place where every contributor is being treated as an aggressor despite of his intentions. This is being done unconsciously because you have no leadership, beware!

Instead of a happy-end:

- GTK+ and its wrappers belong to Lower Desktop (freedesktop.org)
- GnomeVFS and GConf belong to Lower Desktop but have no future because I suspect freedesktop.org will not accept them
- The true reasons behind Orbit and Bonobo death are pretty clear

P.S. Also I understand now that gnome-tech.org is a bad idea, as well as a contribution of Gideon to Gnome.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]