This must be software week for my brain, but whatever.
I’ve been following with no uncertain interest the developments regarding Canonical’s adoption of its Unity shell as the default desktop for Ubuntu 11.04 .
My first thought when I read this was “this is definitely going to piss some people off”
Which on reflection says a lot about the open source community. The reaction to a decision to develop a particular piece of technology is judged not in technical terms but in social ones. That is, problems arising from this decision will have nothing to do with whether or not its a good idea from a software engineering point of view but with how miffed people are by the decision.
I think this would seem very weird to people outside the OSS community – something people inside that community may not realize in fact. Simply because the majority of people just cannot conceive anyone getting very worked about over computer code. Not that this makes them more rational – people get worked up over everything from talent shows to train sets, its just what you’re used to. But maybe before leaping into debates people should reflect a little on this and their place in the Grand Scheme of Things.
Now before talking more about unity let me say some things about me as a computer user.
I am not currently a Linux of Ubuntu user. I was until recently, when Ubuntu was the only thing that made my laptop pleasant to use. That has since been replaced by a MacBook pro. I am no mac fanboy – i got this machine because its great hardware. I spent a long time and choose carefully, so anyone who feels like criticizing this decision can go fuck themselves. The OSX that runs on it is pleasant but get this: it is not the end all of user interface design. One example: various things mean you end up with a crowd of windows open at once and always slightly irritating ways of switching between them (Expose- nice but OTT, alt tab means a lot of button presses, no previes, dock- long button presses, slow, single click on icon is unreliable). What’s been making it great though is the third party apps. While most of my “real” work depends on cross-platform tools (mostly Matlab), its just so nice having a collection of top notch programs to do that bit more with my machine. While on Linux you tend see a proliferation of half-baked solutions, on mac there are a few, they are commercial, but damn they’re good. Simply put, i am not switching again until someone makes something as good as Papers for linux.
The reason I am only cautiously optimistic about Unity is its tendancy to pick up some annoying things from the mac, such as the dock which always steals part of your screen. On the other hand a focus on full-screen apps is very welcome in the days of compact laptops (even 13 inches fills up fast). I feel the global menu should really be made redundant by getting rid of that menu in most programs altogether – why an IM app needs a “file” menu is beyond me. The global menu kinda forces you to keep them. On the other hand i love the indicators and notificatons (something i really miss on Mac). They’ll definitely have their work cut out turning it into something decent on larger screens though – we’ll see how that goes.
I think what makes it better for me is that the alternative is it shipping with Gnome shell – to be brutally honest, gnome shell has never caught my interest, and always had a very “prototype” feel to it, but in a way that suggests that it’ll just keep feeling that way.
What I really appreciate about Unity is the focus on designing a user experience, making use of some very nice new technologies like Zeitgeist. I think people really need to recognize this as a legitimate thing to do. Canonical are not out to develop yet another software platform – they are designing a single, integrated product for a defined market. Demanding that they focus on a “please everyone” (which really means “please us developers”) GNOME desktop is counterproductive.
Pretty much all the tech they’re using is part of or closely related to GNOME – they’re not reinventing everything, and as for warnings that its “hard work”, lets not forget the Gnome Shell is also a long way from being an attractive experience.
Also (though I’m less well placed to comment on this) it seems the Gnome community have been less then helpful and rather self-contradictory regards Ubuntu’s additions and innovations. Basically the problem is this:
People complain “Ubuntu you don’t contribute upstream”
Ubuntu offers some of the changes they made, like Notifications, and says “ok do you want these”?
The reply is “no, thats too radical/not our vision/you should have talked to us first”
So Ubuntu says “fine well we’re putting them in our product anyway since we like them”
And then they get critisied for forking gnome or ignoring the community or whatever. I think that’s ridiculous – either accept their changes or accept their freedom to do what they like to design their desktop. To reject both is basically to say “do things our way or we’ll hate you”.
In any case for me there is one thing that really makes Unity relevant: dissemination and third parties. Unity will most probably show up in a bunch of Netbooks and instant-on environments. People will get used to it, more people may buy other machines with the familiar Unity desktop. And people will start make professional quality software for Linux.
As for me, I’m becoming less and less interested with fiddling with computers. There was a time when i’d compile kernel modules to install graphics drivers. Now I just want to get on with my life – my computer should be an enabling tool and itself become invisible, leaving me to deal only with the tasks I want to accomplish. Which I appreciate software freedom, I’m not going to sacrifice my valuable time or sanity by using poorly though out gear. The more vocal in the communities need to understand this: if something doesn’t work for someone, its doesn’t work, its broken, and no amount of argument or telling people they’re wrong is going to change that experience. This is not just an OSS issue. I’ve spent the whole day struggling with Mathematica and its convoluted logic – now someone can tell me all they want that i’m using it wrong, but if a program crashes because I’m doing things that are perfectly acceptable according to the intro and the interface, then that program is broken, period.