Hacker Newsnew | past | comments | ask | show | jobs | submit | beantree's commentslogin

GNOME Shell is the window manager (and some would argue a little bit more) for GNOME3. The GNOME wiki is a good place to start. A mostly up-to-date design overview is available at https://live.gnome.org/GnomeShell/Design/

A technical overview can be found at Owen Taylor's blog http://blog.fishsoup.net/2008/10/22/implementing-the-next-gn... It's old, from when the shell was just being planned, but all the major architectural decisions are there.


With GTK+3 and GNOME3, there is a push towards a development model like you've described. GNOME Shell's UI is written in Javascript, the core is written in C. Themes are done in a CSS-alike language. DBUS (a cross-desktop standard that works in both KDE and GNOME) provides data messaging and your "UI & system events coming from a port." This allows daemons (your "server-like plugins") to communicate across programs, share data, UI elements, and whatever else you feel like communicating between processes.

One of the most important changes is the gobject-introspection work, which allows library authors to annotate their library's API in a way that allows bindings to be automatically created for any language. This is how GNOME Shell is able to use Javascript to call into GTK+3. Developers wanting to develop for GTK+ in their favorite language, be it Ruby, Python, Lisp, C#, D, or anything else, don't have to write bindings themselves or wait for someone else to write them.

Many new GNOME applications and libraries are being written in Vala, a language with an object model based on GObject but a syntax like C#. It offers a modern language with garbage collection, and everything compiles down to C in the end. The same compiler can also compile a language called Genie, which is designed to have a syntax similar to Python (although, in my opinion, it hasn't done a great job at that yet, and I've seen no use of the language in the wild). It also compiles down to C.

Tensions are high in the FOSS desktop world right now but that's nothing new. Flare ups like this come and go. Sometimes the problems are fixed and we find new ones to argue about a few years down the line. Sometimes the wounds fester, become gangrenous, and people leave for good.

Most of us just want to write code we can use and have fun writing.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: