Managed to get myself embroiled in a little email exchange with Linus about configurability options and GNOME. Seesm that little exchange even managed to hit Slashdot.
The misconception that I feel Linus have and a lot of the people posting on Slashdot is that patches that adds configuration options to GNOME would automatically get rejected. This is simply false.
At best this is an extrapolation of the quite strict policy of Metacity in particular and the general GNOME policy of ‘no GUI options before thinking’. This policy did come into effect with GNOME 2.x and it came about both due to UI design usability discussions, but also as a result of seeing our config menu’s get clogged with options which mostly where there due to bugs, missing features and a heterogen deployment environment below GNOME. It was decided to focus on actually trying to solve these lower level issues instead of offering config options to work around them. A talk by Jim Getty’s at GUADEC called ‘Draining the swamp’ being considered the call to arms on that issue. Projects such as HAL, the rejuvenated X.org effort and many other freedesktop projects came about almost as a direct consequence of this.
There was also some misconceptions on the Sawfish to Metacity switch that happened in this time period. It is not correct to say that Sawfish got replaced by Metacity due to it being deciding its high degree of configurability was bad, far from it. Sure there
where people who felt Sawfish went a bit overboard in that regard, but that was not the reason it got ditched as the default GNOME window manager. The reason for that was simply that after Eazel went backrupt and Sawfish maintainer John Harper had to find a new job, he ended up at Apple. And thus due to Apple corporate policy, and probably long hours at work, he couldn’t maintain Sawfish anymore. The troublesome thing about Sawfish was that it was written in its own Lisp dialect so as part of Sawfish you got both an extra lisp interpreter and GTK+ bindings for it. This meant that the C/C++ skills in the GNOME community didn’t lend themselves well to fixing bugs in Sawfish.
The two libraries and Sawsfish itself thus went unmaintained as John went away and nobody where interested/felt qualified to take it over. Thus the GNOME developers had to look around for a new window manager and it was decided that one should aim for one written in C like the rest of the desktop libraries to lessen the chance of future maintenance prolems. To answer this call Havoc Pennington stepped up with Metacity and it was quickly adopted by a lot of GNOME developers and users and subsequently chosen as the standard.
Metacity was philosophically very different from Sawfish and Havoc
was very strict about what he let into Metacity, due to an idea that requests for config options was usually a result of broken behaviour in the window manager and thus feeling the behaviour should be fixed instead of a config option added to work around the problem.
This was in line with the policy that do govern GNOME as mentioned above, but in the case of Metacity this was applied in a much sterner/hardcore fashion that for most other modules.
But due to Havoc’s high profile in the community and beyond it I think the policy he kept for metacity colored how people outside the project perceivedthe project as a whole which is the main reason I see for this hard killed perception to live on.
Anyway, back to Linus and his irritation with Metacity. I can’t not say if his patches will go in or not, its not my call. But I did at least add them properly to bugzilla for Linus to ensure they get reviewed and commented on at least.