*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.


_______________________________________________
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Reply via email to