At the GNOME Summit, Owen suggested the following:
Before I focus on the advantages of using multiple languages for applet development, I’d like to review a few of the key philosophies that drive GNOME Development:
- Software should be easy and simple to use for new users.
- Software shouldn’t have a large learning curve.
- Different pieces of software for the same platform should use consistent interface elements and share design decisions. Users shouldn’t need to learn new skills in order to use new applications.
When these same philosophies are applied to development and placed in a GNOME specific context their implications are:
- There should be GNOME frameworks that allow developers to easily write applications, even if they have no prior experience with GNOME.
- Developers shouldn’t have to learn many new skills in order to develop their first GNOME application. When possible, they should be able to use their existing knowledge from other platforms.
- Different pieces of software for the same platform should use the same technologies. A developer working on one GNOME application should be able to quickly jump in and contribute to a fellow GNOME developer’s application without needing to learn anything new.
The implications of 2 and 3 are problematic and contradictory. If we allow developers to jump into GNOME Development using all of their existing skills (including intimate knowledge of languages and toolkits), how can we still create a united platform that uses one set of standard and familiar GNOME technologies? More importantly, how can we create a platform with an interface that’s consistent for users?
The solution that’s been followed for the past 11 years is a simple one- Wherever giving developers extra freedom will not hurt the user experience, freedom should be given. In other words, development in multiple languages is fine, but using multiple toolkits is not fine.
This strategy has worked amazingly well. There are a wealth of applications that have been written in C, C++, Python, Mono, and a few other languages. If GNOME had begun with an ironset rule that applications may only be developed in C, we would still be in the dark ages of desktop development with all development done by a few hardcore C junkies. Heck, even if applications were allowed to be written in one “high level” language like Perl- or even the fledgling Python of 1997, for that matter- we would still never be where we are today. All of the goodness that has come out of Mono- and most likely everything that uses pygtk, as well- would have been lost in the curves and twists of a what-if history of GNOME.
The reason GNOME is so diverse and powerful today is because of it’s flexibility with regard to languages and even technologies. We’ve always embraced the new and hot, most recently with Clutter. We’ve also always allowed developers to use as many of their existing coding skills as possible. We’ve taken in developers from just about everywhere- Windows, Mac OS X, the Web, etc- and they‘re the reason that GNOME rocks so much today.
I’m blogging from the GNOME Boston Summit. There are some neat projects being demoed, but more on that in later posts.
I just gave a last minute lightning talk on the problems with GNOME for people who want to begin developing. It went extremely well, and we’re hoping to have a full break-out session later.
I’ll upload the slides later, but the quick summary is that no one who tries to begin developing for GNOME actually succeeds unless they have prior knowledge.
Yeah, it’s really that bad.
There have been a lot of neat discussions going on at the GUI hackfest over the past few days. A lot of it is now available on the wiki, so be sure to check it out.
I’m at the airport waiting for my flight to New York and then Boston. I’ve already been through airport security and got questioned on the names of my siblings, language, school, etc. etc. and in only another few hours, I’ll be attending the GNOME User Experience Hackfest- my first open source event of any kind.
The hackfest was arranged by Owen, Federico, and Vincent and will be taking place at the Novell/Ximian office in Cambridge. The goal, as Owen and Vincent explained, is to come up with polished ideas that will drive GNOME desktop development for the next two years. There’ll be discussions on a whole range of topics from applet frameworks to semantic desktops to eyecandy and usability and everyone is encouraged to suggest other new ideas.
Following the hackfest, I should be able to attend at least two days of the GNOME Boston Summit. This will also be a first for me, and I’m excited about the possibility to meet even more people that I’ve only met online until now.
It’s almost time for boarding and I’d like to get a quick bite to eat, so I’m going to end here. Based on the list of hackfest and summit attendees, I’m certain that excited and perhaps only half-comprehensible updates will follow over the next few days as ideas form and contagious excitement catches on. Even if you’re not attending the hackfest, be sure to follow GNOME Planet and let us know what you think.