Tuesday, 26 April 2011
Review: Gnome Shell and Unity
The new user wants visual cues for everything, simplicity in layout, messages and notifications, also a quick way to pin favorite programs and files where they are accessible with a single click, similarly a quick way to find, well, everything else. The veteran hacker, by contrast, wants freedom to customize and configure a working environment for day-in, day-out use. So what do they get...?
Both are desktop shells, interfaces that interact with mostly the same Gnome back-end and applications. On the surface they are both informed by common, current design principles - not to mention each other, since they are concurrent developments. Throw in a splash of Macintosh, a big pinch of interfaces from music players to phones, and we get a massive culture shock compared to the desktops we're used to. That translates to a lot more mouse-mileage, changes of screens and panels than classic Gnome 2. There are far fewer options for customization in both, corralling unruly users who might otherwise break the standard. Finding the other controls that you need will demand the patience to search many layers below the main desktop.
Panels and Launchers
Both shells park their panels on the left side of the screen; the dashboard in Gnome 3, the 'Launcher' in Unity. There's a common opinion among designers that this works best for net-books and landscape aspect screens, so that's where the panels are fixed. Gnome 3 uses a minimum of two screens; a working desktop in which programs run and the full-screen overlay which is Gnome Shell for configuring and launching programs. Unity retains a launcher (or dock) with a top context menu and all running programs on a single screen which is always visible.
Gnome Shell's Dashboard runs full-screen and previews the running applications. It scales down the thumbnail views of them all, as more programs are opened. The top panel, titled “Activities,” has a search box for finding applications. Unity's Launcher replaces the task indicator with small arrows to mark running applications. Some say these are elegant space-savers, I find them uselessly illegible. Just as well the launcher also accommodates large numbers of open windows by showing a collapsed view at the bottom of the screen that opens quickly when you need to scan them. Unity features the 'Dash', also commonly called 'Application Spaces', showing all the installed applications. It is filterable by categories (equivalent to Gnome 2's main menu categories), and includes a search field right in the Dash panel itself. I find Unity's sub-panels manage the screen real-estate badly, displaying only a single line of items plus a link announcing how many items are not displayed - even if there is only one.
And this is the problem I have with both shells; struggling so hard to eliminate drop-down menus in favor of more visual icons and dashboards, they impose on the user the need to learn these new working methods without actually making things any easier. The right-click context menu has disappeared and a whole chunk of productivity with it.
By default, neither interface allows window resizing beyond maximizing from the default size . Both use hot spots on the edges of the desktops to minimize or maximize, or tile windows. Gnome 3 even eliminates title-bar buttons forcing you to rely on the hot spots. This all seems like enforced conformity, limiting user choice for no clear benefit.
Both interfaces feature fixed, bare, top bars; you get a clock and a collection of indicators; controls for sound, batteries, network and user account information. Gnome 3 also uses the panel for a task indicator - something you don't get in Unity. Yes, you can at least change colors and wallpapers in both. Unity will auto-hide the panel (but only on the left), Gnome won't. Beyond that, customizing your desktop is controversial. You want to add applets to your desktop panel, or application launchers to the desktop? Gnome 3 doesn't give you the the option of desktop icons at all and the Unity framework steers you away from them.
Unity might have an edge on elegance of design. Although Gnome 3 handles virtual workspaces better, it still seems to be working out complexity that should never have made it past the first Beta release. At least Unity delivers notifications that are colloquial and helpful. Gnome 3 is something of a sullen beast.
I have an issue with the 'dash' in both. Finding an application from an array of icons is not anything that I want to regularly do in either of them. They've flattened the hierarchy of drop-down menus and left us with hordes of multi-colored icons arrayed like Chinese terracotta warriors. Meanwhile file management is left largely untouched and unloved. Yes, I know we're all going to have our 'stuff' stored on the cloud soon, but that's not now. 'Now' is still Nautilus file manager, with all its' faults and limitations.
It seems to me they both fall uncomfortably between net-book and smart-phone, using grids of icons and non-linear operations. I've seen it called “the smart-phone, one-size-fits-all approach.” I'm not sure this is the way to world domination. Why so much mousing-around the desktop, unless you bother to learn the keyboard shortcuts; in which case why bother switching from classic Gnome desktop at all? Particularly when KDE 4.x does much of this so much better?
If you're a new Linux user, these shells are going to confuse the beejeezes out of you, whilst frustrating the living daylights out of the veteran hackers. It might work for the young and open-minded, the just-getting-things-done, social-surfing, mostly on-line users, running simple tasks. On small, light-weight machines for casual use, Unity and Gnome Shell could work well. But at some stage, the new user becomes a veteran and productivity will hit the brick walls deliberately built by both. Unfinished brick walls at that; Gnome 3 might yet ditch some of that complexity and I am also aware that Unity has evolved fast and is not in it's finished form. Who knows what changes will come from real-world use of what will effectively be a large-scale public beta-test? RC