I´ve been using computers for a long time now, and I´ve seen the evolution of the modern operating system almost as if it were happening in front of me. Sure, I´m not very old. I havent used the most of the first Unixes and first GUIs. I missed completely the dominance of the mainframe, and never actually saw a punch card, let alone touch one. I wasn´t even around when the first networks were born. By the time I got used to computers and networks as a way of life, usenet was pretty much dead and IM was on its way to being king. The following is an account of usability from my perspective, heavily influenced by things I have been exposed to. In the grand scheme of things, I might be very, very wrong on many counts.
I remember still, though, the time when MSDOS was the operating system of choice on the personal computer. I remeber the time Windows 3.1 came out, and everyone appreciated the fact that once you booted into the cold, heartless DOS command prompt you could type in ´win´ and an oh-so-friendly GUI came up, never mind that it did very little. Then, usability did not mean what it does now. The GUI made things easier, nicer to the eye. The assumption was and remained to be that computers were complicated beasts and were respected. The GUIs, although they did very little, did improve the human interface to things so that kids such as myself could do small things without worrying too much about the underlying complexity. Soon, we moved on to Windows95, around the time the Internet was gaining mass adoption. The definition of usability started to change around then. Windows 95 was good, for its time. It tried to eliminate the command line altogether. What it caused was pretty much a shift in the paradigms of computing. A system that required human intervention became a ´bad´ system. Computers, and more specifically, operating systems, had to ´Just Work´. Hardware became infinitely diverse. AMD started beating the crap out of Intel in the decade to come, and then Intel returned the favour. SiS, ATI, nVidia and others started taking graphics to a whole new level. Computing had, for the first time, become something ´for the masses´. This transition, however, started another in the background. The basic assumption about computers being something you respected started to erode. In the 14 years since, people have hurled all sorts of abuse at computers. The fact that they even survive today is testament to the fact that they are something real, something substantial, and that they are not just a child´s toy. They pretty much power the economy and governance of today.
People now dont want to worry about the internals of a computer. They dont give a damn if the processor is made by Intel or AMD. They care even less about who writes their operating systems. Most dont even want to know. All that they care about is that their computers _work_. And not just work, but work the way they expect them to. After windows 95 came 98. Then there were some junk released before XP took the market by storm. By then, we all but forgot about the command line. What you could do with complicated batch files and environment variables could now be done in less than 10 clicks of a mouse. The wonderful complexity of the computing platform was all but hidden away to the user. The most that the slightly-more-than-casual gamer saw was cleaner graphics, enhanced sound and gameplay, and 3D. Oh, 3D. The wonder of walking around in a world filled with objects made of discrenable polygons and killing people at whim without worrying about the consequences. Usability moved from being something people appreciated to something at the back of someone´s mind, and bitched about when something didn´t ¨Just Work¨. Sure, computers could now do much more than before. Paradoxically, they also became less flexible. There were only so many things you could do to customize your computing environment. You couldnt just go in and rewrite your routing rules. You could´nt have different environment variables for different tasks (Actually, you could. But did you ever know that?). The computing market had changed, and since the operating system developers (even the open source ones) were market driven, like all good things in this materialistic world of ours, so did the way operating systems were made. Marketing teams decided what an operating system should do, and the developers became the guys who write the code. Desktop Operating systems were no longer written _for_ the power user. The name given to this transformation was usability. Usability became key. Usability now meant ¨An idiot can use this system without breaking it¨. It didnt matter that it was painfully difficult, if not impossible, for a generally intelligent person to do something that should have been trivial. It didnt matter that the flexibility of the computing platform was being grossly underused. Operating systems and usability driven applications became the primary hogs of computing power. Graphics rendering became the core of high end computing on the desktop, not typical number crunching or data mining.
It was only after I came to IITK that I started taking Linux seriously. Till then, it was just something out there. It wasnt ´usable´. I had no clue what KDE and Gnome were. The first time I installed linux in my 11th(?) I picked KDE because it didnt sound as lame as Gnome. Not having an internet connection then, though, I soon got tired of not having mp3 codecs and decided to ditch the idea. It didnt matter that mp3 was a propietary format and hence was not included in the distribution (Fedora Core 2). MP3 support was something that you needed. It didnt matter that MP3 support was just one command away. Without the internet, that one command can be a very, very difficult one to run.
Today, my definitions of usability have changed. I dont care if an idiot cannot operate my operating system - I need to know that I can. I need to know that I can do with my operating system what I want to do with it, and do it without mucking around in places that are clearly not meant to be messed around with. I dont want to say ¨I Know¨ to a million warnings before I get to the part I want to change. If I want to switch my network from static to dhcp, it takes me whole of 17 keystokes, not counting bash auto completion. If I want to mount a whole bunch of ftp folders into my own filesystem and then let dolphin and gwenview and beagle use them as if they were my on my own harddrive, it takes about 15 keystrokes. I want all my window decorations to look more or less the same, and want my widgets to look uniform as well. I dont care if its a Java application or a Qt one. I want my system to respond instead of freezing and I want to be able to kill the application causing the freeze. I dont care who implements that, I dont care how much it costs. I dont even care if it doesnt have any localization to speak of, as long as its in English.
Windows Vista was great. Really. It looked amazing. Aero was a little late in the game, but glass made my day the first time I saw it. Usability wise, it sucked. I still take about 2 minutes to find the window that lets me change my network settings. It had a boatload of cosmetic improvements, but nothing discernable of note in terms of usability improvements. Applications still did random things, modifying system behavior was just as hard, if not harder, than in XP. Vista was by far the worst disappointment than anything else in my short stint with computing, including KDE 4.0. Its not that it was _worse_ than Windows 3.1. It was, obviously, better. The point was that it was supposed to do so much more. We all knew what to expect with windows 3.1, and were happy when we got it. We never got what Windows Vista promised to give us. KDE 4 looks promising now, but still is below the standards that were set for it. It still crashes. It still does strange things occasionally. Applications still break once in a while. But KDE 4 is on the right track, for the long run. The road to KDE 4 was not filled with _just_ usability improvements. It involved rewriting a lot of the underlying mechanics of computing. It fixed gaping flaws in some implementations and exposed some in others. Over time, KDE 4 and its successors can probably achieve the kind of usability that the user of today has been promised. But right now, it is far from it. Windows 7 is something that I havent used yet, so I cannot comment on it. Perhaps in a couple of weeks I´ll find some time (and hardware :P) to try it out on.
At the end of day, usability is something that needs to be defined. Users should know what to expect. We are still atleast a decade away from software that can guess what the user wants. Probably more than a decade, in fact. In the mean time, software usability will continue to evade developers. Usability teams will look at some aspects of usability, and those are, in general, not the parts of usability I care very deeply about. I´m not trying to say that I prefer a heartless terminal to a GUI solution that ¨Just Works¨. What I want is _something_ that ¨Really Just Works¨, to that point that saying it ¨Just Works¨ is having more information about the system than I really need.
I have a feeling I wont get to see that kind of system in my lifetime, though. Do you?