Linux? Linux. Linux... Linux. Oh, and user interfaces.

22 April 2009

ObDisclaimer: I don't design user interfaces for a living.

Originally, I was working on a post about Linux - about why I switched to it, and pontificating about why more people haven't. After writing about half of it I let the article soak for a while and returned to the text later, and I realized that I was having an un-earned grey beard and suspenders moment. There is no point in talking about why I started using Linux because the reasons for it are, in truth, not particularly relevant in this day and age of plentiful processor cycles and disk space. I also do not think there is much of a point in discussing what I personally use computers for; as far as the data is concerned (where the data is comprised of what everyone does on their computers every day) I'm an edge case, and my particular data point would be thrown out during analysis as an anomaly. Also, a couple of Sundays ago, Lyssa and I were over my bother-in-law's place for Easter brunch and he happened to make a comment about Linux not being more popular because it's too difficult for most people to use.

This got me wondering.

When you get right down to it, most people boot their computers up, log into them somehow, and do one of two things immediately: start up a web browser or open an e-mail client. Sometimes these things happen at the same time because people set Hotmail or Gmail as the homepage of their browser and log in immediately. That's a pretty standard operation on any OS that you care to sit down in front of, be it Windows, Linux running Gnome or KDE, Mac OSX, or even Sun Solaris if you're feeling punchy. It doesn't take a whole lot of thought to find the icon that says "Firefox" or "Web Browser" and double-click on it. E-mail's a bit more tricky because OSes tend to name their mail clients specifically rather than "E-mail". You've got Microsoft's Outlook, mail.app, Mozilla Thunderbird, and a number of others that I don't feel like tracking down by name right now. They all do pretty much the same thing, though: connect to a mail server, ask you to log in (normally only once because they cache your credentials for future use), display your messages, and give you a chance to send replies. Saving attachments in this day and age is optional due to threats incurred by vulnerabilities in local applications.

A common enough complaint I've heard about Linux is that the mail clients are too hard to configure - you have to open multiple windows, know the address of your incoming and outgoing mail servers, this, that... if you've ever configured Outlook, however, it becomes apparent that you need to know the same information to set it up properly. This leads one to consider the possibility that the difficulty is due to the perception that 'different' is the same as 'bad' or even 'inferior', which is clearly not the case. As for being able to access time management or calendaring applications, there is equivalent open source software that does the same thing - Mozilla Sunbird and the calendar functionality of Evolution for Gnome - assuming that you don't already use them from your intranet website and don't even know it. There is a slight learning curve involved, to be sure, but it isn't one that five minutes of looking around in the File and Tools menus can't fix.

As for seamlessly being able to click on a link in Sharepoint, having the document open in Word so it can be edited, and then saving it back to the Sharepoint server, all I can say is that I've spent more hours than I care to think about right now re-writing a document because Sharepoint sneezed at the moment that I and an unknown number of other people all tried to save our changes simultaneously and munged the file. Saving a document to your desktop or home directory, then editing it, then saving it back to the server is a process which has utility even though you have to go through a few more steps (consisting of a few seconds each). When it comes to working on Microsoft Office-related documents, the only thing I can say is this: OpenOffice.org 3. I've been using Oo.o since StarOffice was commercial software (which I actually paid for - see, there's my grey beard moment!) and Oo.o has opened pretty much every document I've ever needed to work on at work, from PowerPoint presentations to .docx files, and I've been able to edit them, save them, and open them with Office and no one's been any the wiser. Macros seem to work pretty well, but embedded VB does not; then again, everywhere I work tends to disable VB support in Office anyway because they consider it a security risk...

I don't really play video games (just the odd hour of Uplink or Legends of Zork) so I can't really speak on gaming options. What I can cite, however, is the usual list of games that have been ported to the Linux platform with some commercial success: Quake 1-4, Enemy Territory, Unreal and the Unreal Tournament series, Soldier of Fortune, Descent 1-3, and scads more. There are many more out there, just a Google search away. However, I can speak favorably of some of Blizzard Games' software, notably Diablo II and Starcraft: they run perfectly under WINE, and I've even participated in LAN parties without trouble (save the fact that I suck at Starcraft and routinely get my ass handed to me).

I think what much of the "Linux sucks, it's too hard to use" statements come from is from people who aren't willing to try something different long enough to get used to it. There was a learning curve for people to get used to Windows 95 and 98 (and their bastard stepchild, Windows ME). Once you learn where everything is, it's not too difficult to use. Then 2000 came out, and a lot changed, but after a day of fumbling around you figured it out, right? Then there was XP, which most people picked up after a day or two. The desktop environments of Linux (Gnome and KDE) are the same way, and they don't take a whole lot of work to adapt to. When you look at it the visual differences are minimal: KDE looks very similiar to Windows in how it's laid out: you've got a core menu at the bottom left, a couple of shortcuts next to it (usually your web browser and a button to minimize all the displayed windows to get back to the desktop), a couple of applets, and a clock at the bottom right. Opening the menu reveals a couple of sub-menus and shortcuts to often used applications. Aside from the fact that my example is a copy of Backtrack 4 beta running KDE (which is what I happened to have laying around), visually speaking things aren't all that different. Yes, you have to hunt around a little to find what you want, but don't you have to do that when you use someone else's system anyway because they have a different set of apps installed?

Gnome is a bit different in that it makes it possible to set up multiple bars at the edges of the screen, say at the top and bottom (like I do). Granted, I customized Windbringer's desktop a little but not so much that you couldn't find your way around if you looked at it for a minute. At the top are three menus: Applications, Places, and System. If you wanted to open Firefox, the logical first place to look would be under Applications. If you wanted to see what one of the applets did (which I happen to keep in the top right rather than the bottom right) all you have to do is hover the cursor over them (just like Windows). You can just barely see a couple of icons on the desktop itself (most are covered by the Firefox instance). You can also see at the bottom of the screen a couple of tabs on the task bar (a shell, the text editor I'm writing this article in (yes, even in the age of Web v2.0 I still make heavy use of vim, though I've made concessions for using X11 support), and Firefox).. just like Windows.

If you don't want to these days, you don't really need to know much about the shell to configure a Linux system. Auto-configuration and probing are now effective enough that you can drop your system into a completely unknown network, boot it up, and be ready to rock within about three minutes. For everything else, there are graphical utilities for configuring everything under the sun (though they might ask for your password first). While I prefer a distro for more advanced users, you don't have to. That's what makes Ubuntu and Fedora Core so attractive: they were meant to be simple to use. Updates are checked for automatically and can even be automatically installed. Installing packages is as simple as going to your Applications (or KDE) menu and running a tool that not only updates the internal list of available apps but lets you pick and choose the ones you (don't) want and will even resolve dependencies for you. Sit back, get a cup of coffee, and you're ready to go within a few minutes. You don't have to install VMware or rebuild your system from scratch to try them out, either - that's what LiveCDs are for. Download an .iso image (hell, download a few), burn it to a disk, and reboot. Once you've played around with it for a while, then you can decide whether or not it meets your needs. If not, eject the disk, reboot, and you're back to your old OS, whatever it may be.

The point I'm trying to make is that changing operating systems does not have to mean the end of the world. Sitting down and giving something an honest try does not have to mean spending days or weeks debugging everything. Just because the user interface doesn't look like what you're used to does not mean that you have to call something 'too difficult to use' and give up. Something I've noticed is that at least some of the people who use that tactic in the OS wars are the same people who think nothing of mastering the intricies of another sort of user interface which probably doesn't register as such immediately: video games.

Every video game, and for that matter every game console implements a different user interface, a different way of interacting with the system to get it to do what you want. Each has a learning curve; some are steeper than others, some are more intuitive than others. Uplink lays the controls out in a manner one would expect of a simulation of a computer, using menus, sub-menus, and icons to interact with the game. Fallout 3 combines elements of augmented reality technologies, add one more/subtract one value changes, and multiple levels of menus in addition to the run/crouch/jump/shoot stuff controls that you'd expect from a first person shooter. At first scratch, playing Fallout 3 seems like a daunting task: which button on the controller is for jump? Which button is used to fire the primary weapon? The secondary weapon? How do you open the inventory screen? Which button confirms or cancels a choice?

Why is it that one person will put in the effort to master such a method of interacting with a game but not wish to do so for a general purpose computer? If it sounds as if I'm making a distinction between spending time playing games and spending time doing something that could be considered more productive, it's because I am. What makes them so different?