Friday, December 11, 2009

Using Ubuntu; the GUI and Applications

Using the OS and GUI
Ubuntu offers a choice between various so called Desktop Environments. You can install or remove additional DE's through synaptic package manager and if you have more than one DE installed, the login screen will allow you to chose a particular one for each session, so its quite easy to test them out and decide which one works best for you.

The DE determines to a large extent what your GUI looks like, how it behaves and which default desktop applications are installed. The most popular two are GNOME (default for Ubuntu) and KDE (default for Kubuntu). Another promising DE is Moblin, developed by Intel specifically for netbooks, but its not quite ready yet for prime time on Ubuntu. I do expect this to become an interesting alternative very soon.

Selecting a DE is purely a matter of preference. KDE looks a bit more fancy and arguably more like Windows 7. Its quite powerful and extremely customisable. GNOME is a bit more bland, but to me at least, its more intuitive and I just think it looks better. Either DE comes with their own panels with very different start menu's and organisation of your desktop in general. KDE favours a single click interface while GNOME by default uses a more traditional double click interface. Both have different sets of default applications for things like the file manager, email client, music player, and IM although they do share common apps like OO and Firefox.

Using a different DE for all practical purposes very much feels like using a totally different OS. Fortunately, DE's are compatible with each other. You can run almost all KDE applications on GNOME and vice versa. If an application is not written specifically for your current DE, it may look slightly odd as it uses different graphical styles, different menu's and file browsers, but it will work just fine because the package manager will automatically install the required DE dependencies.

Tweaking your GUI is not exactly limited to selecting a DE however. Just about everything can be tweaked or changed, and if you look on youtube or google images for screenshots of Ubuntu, you'll have a hard time finding 2 desktops that look even remotely similar. In fact you'd find plenty that have added docks and panels and have been customized to the point where you cant distinguish them from Windows or OS-X, or just not recognize them at all.

One popular tweak you might have seen already is the famous Compiz desktop effects, which includes the 3D rotating desktop cube and the wobbly windows. Enabling basic desktop effects, like the wobbly windows, it is just a one click operation in the appearance menu. If you want to unleash all the power of compiz, you'll need to install compiz manager where you can configure advanced graphical effects that make Windows flip 3D or Aero 's transparent borders look downright silly. It even puts OS-X to shame.

For the most part, this is all just eye candy. Having virtual desktops is certainly handy but being able to present them on a rotating 3D cube or sphere does not do much to improve your productivity. Neither do wobbly windows, rippling water or fancy minimize effects. And still, overall they do have a severe impact on your computing experience. Do you remember the times where moving a window only showed the border being moved ? When minimising an application gave no visual feedback? That's how moving windows in 7's GUI feels to me now, compared to Ubuntu. Boring, old fashioned and too rigid. You have to experience it first hand to really grasp it, but Compiz is simply lightyears ahead of windows Aero. Have a look here to get an idea:

A lot of compiz effects also do improve productivity: whenever I run Windows I miss the ability to smoothly zoom the desktop with my scroll wheel. I miss the expo plugin showing me all open windows and desktops. I miss the ability to work on multiple virtual desktops seamlessly and group and tab windows. To be fair, on Ubuntu I miss the simple but useful Aero snap function, although some Compiz plugins can be configured to provide similar functionality.
Despite Linux technological lead over windows in this area, Linux might not be known as much for its advanced GUI as for requiring an archaic terminal aka command line interface (CLI). It has a reputation of being a geek OS where even the most trivial task requires typing cryptic commands reminding some users of their old DOS days.

For the most part, this CLI dependency is a misconception. Its not needed. The vast majority of operations can be done through the GUI, just like in Windows (although in some cases it does require you install a small program to give you that GUI). There are however, very good reasons why you will find so many Linux tutorials and forums posts giving CLI instructions, sometimes even for basic action like installing a program or package.

The first reason is that CLI commands are faster. This is true for the author of the instructions, who doesn't have to describe step per step which menu and dialogue to click, but instead can usually achieve the same with a brief, single line command. Its also true for the user, who may not completely understand the command, but can simply copy it from the webpage and press the middle mouse button to paste it in his CLI. It just doesnt get any faster or easier than that, not with any GUI.

A second important argument for using the CLI in such cases, is that its much more universal. In the Windows world, everyone uses the same GUI. Not so in Linux; CLI commands will work regardless of which desktop environment you use, where as GUI instructions will differ dramatically between KDE and GNOME, and lets not mention the other dozen DE's. Writing GUI based howto's would have to cater for every popular DE, which is neither practical nor sensible. CLI instructions are also language independent, if you have Ubuntu installed in French or Chinese, the CLI commands will still work whereas following a GUI based instruction might be relatively hard. CLI often works across versions and even distributions, whereas GUI instructions may not. CLI works when you do not have a GUI installed (think servers) or when you borked you GUI.

Almost every new linux user coming from Windows is initially intimidated by the CLI instructions he is bound to find in the Ubuntu documentation and on forums. I know I was. But as you get more proficient with the OS you will quickly learn that the incredible powerful CLI is not a necessary evil, but a huge asset. And its almost entirely optional. Its just the way most information on the net is presented for the reasons mentioned above; because its easier and faster and universal. Granted, it is not intuitive, but it doesn't need to be as I can not think of a single common action that is not achievable through a more intuitive GUI just as well.

As for Windows 7's UI, you probably know its interface quite well. Its not all that different from Vista's, in fact its not all that different from XP and therefore even 95. You may love it or hate it, but its strongest asset is its familiarity. Despite being overly familiar with it, I happen to hate it for the most part. I can not believe anyone would consider the exact same UI ideal both on 30” multi monitor desktops and on 10” touchscreen devices. I think the uncategorized cascading “all programs” start menu is one of the most retarded ways conceivable to organize and launch applications, second only to Windows 3.11 program manager. Actually, thinking about it, program manager definitely was better!

I do like the new combined quickstart and taskbar; it is logical and works well for me, at least for commonly used apps, but a rethink of the hole concept of the start button to access all programs as well as locations and system settings is long overdue. It seems pretty stupid and requires too many mouseclicks compared to the logical and clear organisation of menu's in GNOME (I also dislike KDE's approach, but YMMV). Furthermore I happen to think the Windows system tray used to be overcrowded but now it has become utterly confusing and borderline unusable (ever tried clicking that tiny arrow on a 10” netbook? With a touchscreen?). I hate the enormously wide windows borders and the transparency looks silly and ugly when maximized.

But none of this would bother me too much, if only I could tweak all of this easily to my own preferences which obviously differ from MS' GUI designers. If I could just swap out the explorer GUI and replace it with something I like better. But I can't. There is precious little to customize beside the colours (somewhat) and the wallpaper. At least not without buying additional software like Windows blinds or BumpTop, and even then it comes nowhere near the power and flexibility I have become used to on Linux (although BumpTop is innovative and kind of fun; Im not sure if its all that practical but its worth checking out if you'd like to see how very different a DE can be).

Entirely subjective verdict:
Ubuntu: 9/10
Windows 7: 6.5/10

What good is a great OS with no software to run on it? Much of your experience with Ubuntu will be determined by the applications you run (or can't run). Overall the amount and quality of free software available for Linux may well surprise many, but there is no denying windows has a far richer software ecosystem. There is almost literally no desktop software available for Linux that doesnt also exist for windows, while the opposite is far from true. The conclusion is already obvious, Ubuntu is not going to win this section.

For office and internet usage, its unlikely you will miss much by switching to Linux. While it may not have all the features (and bugs and security holes) that MS office has, OpenOffice (and variants like IBM Lotus Symphony) is still an excellent office suite that should satisfy the large majority of users. You will also get a wide range of browsers and email clients to chose from, many of which you may already be familiar with (firefox, chrome, opera, thunderbird). There is a good selection of instant messengers that can connect to all popular IM networks like Yahoo, MSN and ICQ, as well as a native Linux skype client.

There are countless programs for managing or playing back audio and video, and even for HTPC/PVR usage there is a fairly rich selection of software that puts Windows Media Centre to shame (MythTV, XBMC,..) To manage digital images there is a lot of choice as well, whether it is album managers (f-spot, picasa,..), photo editors (gimp is almost as good as Photoshop and free) or conversion utilities of all sorts. The artists among us will appreciate Inkscape for vector images or Blender for 3D, and there is also no shortage of small utilities for things like gmail, flickr, blogging or social networking. For cloud computing, Ubuntu comes with Ubuntu One which lets you easily synchronise and share files and folders online, and comes with 2 GB free cloud storage (more if you pay).

Video editing is something else. There are a few ambitious and promising editors that have been progressing very quickly, like pitivi, lives and kdenlive, but if you are used to all the power of Adobe Premiere and After Effects, you may still find them a bit limited. I also found them relatively unstable last time I tried them, and so Im still sticking to Sony Vegas in a windows virtual machine.

Games is probably the most notorious and famous weak spot of Linux, though for young children, the opposite is actually true. There is a huge collection of excellent and free educational and plain fun software for children between 2 and 12. But if you are older and a serious gamer, switching to Ubuntu is not going to be very satisfying. There are some games for Linux, both commercial and free. Some of them are even surprisingly good, they are not only space invader clones, but if you can't live without your Crysis or Modern Warfare 2, then do not format your Windows drive just yet.

Some windows games can be run on Ubuntu, using wine "emulation". Wine, which stands for Wine Is Not an Emulator, is a partial implementation of the Windows API for Linux, and it includes most of DirectX 9, so it lets you run a lot of Windows apps, including a fair number of games like World of Warcraft, and slightly older versions of MS Office and Photoshop.
Performance is not as bad as you'd think, in fact a few apps and games will actually run faster under wine than they do under native windows, but many games, certainly recent games or games that rely on DirectX 10 or 11 will either not run, or not run adequately. The older the game/app and the more popular it is, the better your odds. You can check online on winehq if a particular app or game is supported and if so, how to make it work, but the simple truth is that a hardcore gamer is going to need a console or Windows because Ubuntu, even with wine, can not replace it at this point.

Games are not the only weak spot; other frequently missed windows apps are some hardware-specific utilities. Like iTunes. While there is no shortage of excellent Linux media players/managers, its currently hard, if not impossible to synchronise with your ipod or iphone. Similar problems exist for blackberries and I'd say most smartphones. How ironic is it to buy a Linux powered HTC Hero phone, or a Linux based TomTom GPS, only to find out there is no way to synchronise or update the device on... Linux?

Wine is no help here, as it doesnt support accessing USB devices yet. But there is another workaround: you can install windows inside a virtual machine using VirtualBox and run your windows-only hardware utility inside the VM. Its a bit cumbersome to have to do it that way, but its definitely easier than dual booting and it works very well (provided you download the free, but closed source PUEL version of virtualbox' website, as the opensource version doesn't support USB devices). Here you can see VirtualBox at work:

Ubuntu: 7,5/10 if you're not a gamer
Windows 7: 10/10 if you dont mind paying for your software.

Click here for Part 3