Linus is wrong.

There’s a bit of a thread going on on the Gnome desktop-architects mailing list, where Linus Torvalds, the creator of the Linux kernel, is complaining about the lack of customizability in Gnome.

Where this was picked up by other bloggers, it was generally reported as Linus trying to fix Gnome and the shortsighted Gnome guys were resisting Linus’s valiant efforts to fix their product.

Well, guess what?  I think the Gnome guys are right on this one.

The issue is concerning the ability to customize what the right mouse button does.  Linus wants that button to do something other than bring up a context menu, because, well, that’s what he wants.

So his argument breaks down to “I want this, and it’s possible to do, so it should be done”.  But this is no way to develop software.

What if I want the ability to have the mouse stop moving when I hold down the Ctrl key?  It’d make it easier to do pixel-accurate icon editing since you’d be less likely to move the mouse as you pressed the button over a particular pixel and hit the wrong one.  Hey, it’s an option I want, so why shouldn’t it be supported? 

There is a real cost to complexity.  Read Joel (on Software)’s Simplicity article.  I’m glad the Gnome developers are holding their ground. 

The best products are designed by a talented designer with a vision for what the product should be.  Linus is arguing that the product shouldn’t really be designed at all, but just evolve organically.  That leads to a mess.

The iPod has very few options, but it’s the most popular MP3 player on the planet.  Microsoft makes a lot of choices for the users of their software, and doesn’t give them options.  This chafes for some, but the options that are there are the ones that a significant percentage of users will use at some point, and there just aren’t any of those options that are put in to make one person happy.

On the other hand, Microsoft does make almost everything in Windows and Office customizable to some degree; if Linus has to edit the Gnome source to change this behaviour then maybe it needs an extra customization hook, for an advanced user or developer to create or plug-in new behaviour.  But don’t add it to the base install.