Here we are trying to give an overview of architecture developement of GNOME project
Good textual overview can be found here http://developer.gnome.org/doc/guides/platform-overview/platform-overview.html
This is going to be a start of progress on introduction document to GNOME development. It will inlcude also GnomeArchitecture/Progress.
Also it would be interesting to find the information about taked design decisions GnomeArchitecture/DesignDecisions
Past - the 2.0 platform
Major flaws:
- IPC mechanizm is badly integrated into language.
- A lot of desktop and platform tools are missing: No bindings, no development suite and so on.
- UI libraries are spreaded over platform
Near future - the 2.16 platform
Major flaws:
- Platform still misses a lot of useful libraries - networking, application support, component support
- Bindings are not used still.
- Office suite and development suite are self-contained
- UI is concentated now, but doesn't use high-level libraries, thus a lot of hacks introduced - modules for vfs filesystem, printing system, badly integrated configuration (it's hard to use config services from UI).
GNOME Platform 2.14
Here is the 2.14 platform, I was thinking almost whole day on rearrangement of packages, but haven't come to solution yet. So it's just a work in progress
GNOME Desktop 2.14
Some applications required to provide GNOME service
GNOME Desktop 2.16
Since 2.14 there was no big changes, although gnome-vfs doesn't depend on bonobo anymore and moved lower on a stack, printing framework is also became deprecated since new printing support appeared in gtk+. The main tendence is to move gtk upper on the stack and drop everything that can't be lower. There are even thoughts about drop of all libgnome libraries and one funny thought about splitting gtk (there will be libgtkprint libgtkprintui libgtkui libgtk, doesn't it sound familar?). Actually some developers are complaining about platform is complete. Let me quote one interesting discussion about that:
Federico Mena Quintero: The GNOME platform is pretty much *done* at this point from the viewpoint of "what more code do we need?".
Alex Graveley (I am completely agree with him): Respectfully, I don't agree. There is a big set of missing frameworks that stops rich interop in Gnome applications, and generally make applications much harder to write well. All other desktop platforms include at least a subset of these...
- Document framework. Provides document loading/saving/printing/etc abstractions, window/tab management, automatic recently used, scripting hooks, etc.
- Scripting framework. Allows apps to easily expose external scripting and event notification. D-BUS was the big missing piece here. Can specify sets of interfaces for common tasks that apps can implement, and building up the frameworks to provide useful default implementations.
- Rich Extension/Plugin framework. Common UI for installing/removing plugins and checking for updates and downloading, common hooks for menu/toolbar integration and UI event integration.
- Undo framework. Almost no applications in Gnome support good Undo. Should provide both reliable desktop-wide interaction for text widgets as well as at an abstract object level.
- Rich DND/CopyPaste framework. Undocumented DND targets, poor support, and manual data parsing abound in our applications. Could provide structured data interop to make doing this loads easier.
- Persistence framework. Saving and indexing application-internal data, optionally exposing to search engines like beagle.
Each one of these is a really large amount of work that doesn't exist at all today, with various bits being implemented from scratch in every application.
