One Week Back to Windows

Among the few things I’m proud of in my life, not having had contact with Windows when I first “met” a computer is somewhere around the top. Indeed, the first computer I used ran Unix, and I have been using Unices myself for some time.

A Quick History

Although I’ve started out with Unix, I have been a Windows user for a long time. That is, since around the days of Windows 95. Before that, I did have an HC (a Romanian-made, Z80-based Spectrum-ish computer), but I couldn’t afford a computer of my own.

I won’t go through the Windows 95 bashing part again. It was nicknamed Mac ’84 at its time, and for a good reason. It was slow, bloated, full of bugs, and as soon as I began to understand its inner working (as far as you can understand from a closed-source OS of course), I immediately thought it was going to take several ice ages before it would become the clean, ideal operating system it was advertised as.

When Windows 98 was out, it didn’t change too much, and the Internet Explorer beast didn’t do much to help. In fact, tearing off IE from any system I was using became a general habit for me. When everyone was commenting on what Windows 2000 was going to bring, I was already a happy FreeBSD user.

The last version of Windows I used consistently was Windows 2000. I did some serious programming work on it, and did enjoy using Visual Studio as well. I still meditate on whether I’d give emacs away for VS if I had the chance to. With a number of exceptions, I was quite happy with Windows 2000. It was, indeed, a stable operating system, nicely polished, secure and, unlike its predecessors, slightly faster than a drunk snail. Nevertheless, I didn’t use it as my home desktop system, but only for work. However, I was simply dragged out by the *nices I was already too accustomed to. I did use Windows XP sporadically, but I can’t think of the last time I used it for more than three hours. I never used it as my home system or for doing serious work on it. Therefore, you could say that I’m mostly new to Windows XP.

Two weeks ago, a friend of mine asked me to help her with testing a program she wrote. Having had the inspiration of purchasing Windows XP with my current computer (I thought you’d never know when you’ll need it), I was able to start immediately. So off I went, wiping out one of the partitions I normally use for backup. I freed up 15 GB of space on my 2.6 GHz Pentium IV. The rest of the system was filled with 1024 MB of RAM, an nVidia GeForce 5600 and an integrated sound card. I also tried to use a HP LaserJet 1020 USB printer, an UMAX USB scanner and some no-name USB keyboard.

Beam me up, Scotty!

I admit that the first screens I saw during the install procedure were no surprise for me. Before getting to the cute, cuddly, graphical part of the install procedure, everything is essentially how it used to be 20 years ago, back to Windows 1.0, except that it doesn’t ask you for install floppies and it has something that tries to act like a partitioning program.

On one hand, I admit to be quite happy with it. I’m not a fan of cute installation programs and I don’t run away from text. As long as it does its job, it’s fine for me, and I am yet to meet someone who says everything should be GUI when installing Windows. On the other hand, the “as long as it does its job” part is somewhat to be disputed here.

Indeed, compared to other operating systems, Windows has a rather primitive install program. The partitioning program is very limited (it can only recognize FAT/NTFS partitions, and can only create or delete partitions), and there are very few things you can customize. There is no option to select which parts of the operating system you want to install (although you can uninstall some of them later). Still, this is hardly much of a problem itself, since Windows is not as modular as you would expect in the 21st century. There’s basically a whole pile of things the installation program throws on your hard drive, much of which you don’t need. Some solutions, like 2000lite from LitePC, do seem to exist, but there is some extra effort which could have been elegantly avoided by simply allowing the user not to install some components. Of course, the space taken up is not such a big hassle most of the times (let’s be serious, you won’t be installing Windows XP on an 800 MB drive) and you can disable the services you don’t need. But there’s little practical reason for this situation.

Another thing Windows doesn’t quite do at installation is be nice enough to detect all your hardware and provide drivers. Of course, this is hardly Microsoft’s fault, it’s a matter of licensing. But still, regardless of whose fault it is, you are still stuck with installing most of your drivers after Windows has been installed. Except for installing the binary nVidia drivers, I’ve never done this on any other operating system. Yes, it’s a magical feature Microsoft has been advertising since Windows 95, a Holy Grail called Plug’n’Play, though that was hardly PnP.

The First Boot

I have a 21″ screen and I must confess that the first time I booted into my freshly installed system, I managed to understand why there are so many people switching back to the Classic theme. When it’s big, Luna looks even more ugly than when it’s small. I switched back to the Classic theme with no regret — and not from nostalgia, but simply because of the few traces of good taste I still have. I don’t know who designed Luna, but I do hope he’s not working for Microsoft anymore.

Aside from that, the first impression I had was quite favorable. The interface is clean, the desktop is not cluttered with icons (does anyone miss “Connect to Microsoft Network” and “Network Neighbourhood”?) and there’s an overall impression of consistency.

Indeed, compared to the TCL/TK, Athena, Motif, Qt, GTK and wxWindows hell from most Unices, the Windows interface has an overall feeling of consistency and through-thinking. Some HCI guidelines were surely used and abode almost thoroughly, both in the system and in most 3rd party applications not distributed with Windows. This means that an user will rarely find himself in trouble searching for the Copy command or trying to find how to open a particular windows inside a program. Compare this to the interface hell of programs like Gimp and you can clearly see who wins this set.

This is arguably the result of a real “cult”. The Windows interface hasn’t changed significantly since Windows 95. Fortunately, they did manage to realize that having a 1 px margin between the Start button and the edge of the screen is very bad. While some people doubt it’s the most usable and ergonomic interface, being the standard one and, with the exception of the cluttering taskbar, quite bogus-free, few people are too unhappy with it. I was comfortable with it myself, despite being a WindowMaker user for a very long time. For those who would do anything to get rid of it, there are alternatives, like the LiteStep shell.

Two for the Drivers

Judging from the fact that Microsoft managed to put the Start button one pixel down, it seems that this was an important issue and I was not the only one who found it awkward. Therefore, I can only conclude that I am the only bastard who thinks that having to restart your computer after you install a driver is something not even the Flinstones were confronted with.

Turning Irony Mode off, I still can’t help wondering why this is still happening. We are living a time when even hobby operating systems support loading modules on-the-fly. In my case, installing drivers in the last few years have been a matter of obtaining the module (or compiling it, which is trivial) and loading it with one command. Having to restart every once in a while is no big deal usually, but in my case, Windows only managed to recognized my graphics card. So: drivers for my network card, USB drivers, TWAIN drivers for my scanner, printer, drivers for using the extra keys on my USB keyboard and drivers for my sound card. That makes 6 times I had to restart my computer, not counting the seventh one for DirectX.

On the other hand, unless the peripherals you are trying to use are fabricated somewhere in the Pacific Ocean, the drivers are often better than their equivalents on most alternative operating systems. In some cases, the difference is only incremental (compared to OS X for example), but in other cases it makes a huge difference. For example, you will find that some printers work erratically or have some missing options when using CUPS. You’ll hardly find a printer that doesn’t behave correctly due to driver problems on Windows. In this case, being the operating system most people use does have its advantages. A hardware company can afford not to support Linux or Zeta, but not supporting Windows is not a good way of making it out of a niche.

Changing the system’s configuration is quite simple to do using the Control Panel, but I have found the range of the options in there quite restricted. Most of the options are hidden in the Registry, and the Registry is simply the worst thing windows has to offer.

Plain-text config files have a lot of advantages. I can grep them, I can edit them on-the-fly, even non-interactively with sed if I know what I have to change without looking at them, and since there are separate files you are sure that none will become too big for the system to manage well. Compared to this, I find it hard to realize why someone would actually prefer a big, binary file, which gets corrupted and makes all other programs behave erratically or stop working as soon as one program handles it the wrong way. The Registry is effectively what some experts call an SOP (Single Point of Failure). That is, a part which is sufficient to bring down the whole system if it is damaged.

Furthermore, since there is no way to recompile the kernel, the options you have when trying to adapt a system for a specific purpose are quite limited. This is part of the reason why there are so few embedded systems running Windows compared to those that run Linux and derivatives. This also means that there are no ways to fine-tune your system to the point where you can fine-tune systems like FreeBSD or Gentoo.

Moving further on

The next step I took was installing the basic software I needed. Going through installing ClamWin and Opera was easy, but then hell kind of broke free for me.

For one thing, I was accustomed to having a number of utils available when installing my system. I’m used to having a few archiving tools for handling tar, gz, bz2 and zip files, and being able to uninstall the programs I no longer need by using something as simple as a package manager.

This proved to be a major problem when moving to Windows. First of all, I often found myself having to install yet another program for an easy task. Before installing Emacs, I had to download WinAce. After installing an mp3 player, I also had to install the OGG/Vorbis plugin manually. Installing an older ear-training program I have used required me to manually install the VB6 runtime. Installing LyX also meant manually installing MiKTeX. You get the pattern.

I haven’t had to deal with manually resolving dependencies for many years now. Again, this is mainly a problem of licensing, but no matter whose fault it is, installing software is still slowish. On most Unices (and not only on Unices), installing a program is simply a matter of selecting it from the package manager and pressing OK. On Windows, I have to find the project’s web page, download it and any dependencies it may have, then install them separately — and installation is interactive, too.

On top of this comes the fact that the Add/Remove Programs… dialog is not always “updated”. Install programs can bypass it, meaning that I still got stuck with some files and registry keys that I no longer wanted. This is, however, eased by the fact that each program has its own directory, in a MacOS-ish style — although not nearly as polished as the system in OS X (which literally renders a package manager useless in most cases).

All these combined mean that it’s quite easy to end up with a cluttered Windows installation. But this is by far the smallest software-related problem with Windows.

The thing I hated most was that I simply had to manually install everything I needed, and this is no small list. Only the development tools I needed took about 50 minutes to install, and this is simply because you have to supervise every single package being installed. In addition to this, Windows literally comes with “nothing” installed — except for a few easy games, a set of rudimentary system tools and a few basic programs (like Internet Explorer and WordPad).

The hard part is realizing what exactly is that 1 GB of files Windows XP spits on your hard drive, when it doesn’t essentially install anything meaningful. Take the example of BeOS for example. The Developer Edition installed about 2 GB of files as far as I can remember, but that included several development tools, a dozen of games or so, some word processing tools (including a competent WYSIWYG office suite), a complete set of basic Unix tools, multimedia-related software and full documentation. By comparison, the only “serious” piece of software installed by Windows XP is Media Player, which I didn’t use at all since I installed VLC.

On the other hand, Windows does offer the widest range of software available for an operating system, as far as I can tell. There are free tools for just about anything, from games to compilers, and freeware (but closed-source) programs are often truly excellent and could even be commercially successful. By comparison, there are still areas where other operating systems are struggling to catch up. The only OS that offers a comparable amount of software is Apple’s OS X, but with Apple switching to Intel, much of the software is confined to running through Rosetta, which is very slow.

Nevertheless, I couldn’t help reaching the conclusion that in its default installed state, Windows is pretty much useless. Its initial configuration is very bare in terms of what it offers (not in terms of hard drive space). For example, after installing OS X, you get a good e-mail client, a good photo management application, a competent web browser with tabs, a handful of little utils, a serious CD burning module (the CD burning feature in XP is pretty much of a bad joke, really), a capable and complete set of administration tools, plus a set of basic development tools like gcc. When installing a Linux distribution, you can make up a complete desktop system right from the installation procedure. In Windows, this isn’t the case. You need to install everything manually, because by default you only get a very bad web browser, a rudimentary set of administration tools, a resource-hungry Media Player and… that’s quite about it. This is, literally, an operating system that Just Works (TM) — because it does little else than booting up.

Shell Shock

One of the things that has always made Unices so popular and admired was the shells out there. In fact, most operating systems today have some sort of a competent CLI interface. This is for two reasons. Firstly, in order to offer a way to automate repetitive tasks. Secondly, because you may expect to login remotely, without having access to a graphical environment. And thirdly, because there are cases when you will simply discard the GUI, like when running a web server.

Windows sticked to cmd.exe, which is essentially a slightly polished version of itself is little more than a CP/M shell clone. So essentially, cmd.exe offers the same facilities which computers were offering 25 years ago, on Z80-based machines. Needless to say, this is very painful, and has had two consequences.

First of all, there are almost no Windows-based quality CLI tools. These are only meant to be used in extreme cases, like rescuing installations. The shell itself is so bad that it makes no sense to make CLI tools — almost nobody would use them anyway.

In extenso, if you want to run Windows on a “passive” station, for a file server or an e-mail server, you will need both a VGA card and a monitor. You may dig out the monitor in the end (maybe by using VNC), but you’re still stuck with the VGA card since Windows won’t run otherwise. However, this means there’s a serious resource consumption. My current file server runs on a 233 MHz Pentium MMX with 16 MB of RAM. Windows XP won’t even install on it, but it does run FreeBSD 6.1 (which, ironically, is even newer than Windows).

This restricts Windows to a number of computers with the necessary resources. Although the requirements are fairly modest by today’s standards, you should realize that it’s impossible to surf the web using Windows XP on a 166 MHz Pentium — which will, however, happily run Slackware.

Speaking of restrictions, this also applies for multitasking and multiusing. I never came to understand why having a multiuser OS is so interesting until I realized that I cannot do my work while my girlfriend does hers on my computer, logged in through a VNC session. That’s because you cannot have two users logged in simultaneously on a Windows station. As for multitasking, the scheduling algorithm used by Windows XP is quite primitive. As a result, having 25 windows open in 6 virtual workspaces (an usual event on my Unix stations, since I rarely turn off my computer so I just leave everything running) makes my Pentium IV struggle evidently.

Restrictions also apply to other things. For example, Windows cannot read partitions like ext2/3 or ReiserFS without 3rd party drivers. Now, if it’s safe to assume that most people won’t use them on their computers, it is surely not safe to assume that I will reformat my USB stick using a primitive system like FAT32 so that I can use it on Windows stations. This kind of dictatorship (see below) made me sick enough.

Micro Dictatorship

The details above by themselves were certainly not sufficient to convince me Windows XP is not a worthy alternative to what I having been using for many years now. Unix systems have their own limits, like poor hardware support (in most cases), poorly-documented software, lack of standardization on some issues and so on. However, after only two or three days of using Windows, I ended up having a lot of minor annoyances springing up.

For example, the anti-virus had to scan for viruses. This implied looking up through a whole pile of files, without making assumptions. This is a rather resource-intensive thing, but it’s also necessary. My initial reaction was quite unprofessional, I’d say, when I realized that the antivirus was crawling through my music collection. I obviously thought that’s useless — OGG files are surely not executable so there would be no way to hide a virus in there. Then I realized that, if you want, you can really make Windows try to run an OGG file as an applications. This would obviously be impossible on Unix, since my OGG files have their executable flag set to 0. The scanning added up to the whole maintenance thing. Without a decent scheduler, and since all applications were interactive (i.e. the defragmenting program asked me which drive to defragment, for example), I had to do the maintenance myself, a thing I’ve never done on Unix.

Then came the problem of the interface. I’m used to having the Minimize button in the upper left part of my Windows. I simply don’t care that Microsoft’s UI experts believe most users would prefer it the way it is now, I want to move it, which I can do in just about any X11 window manager, and, as far as I can remember, even on AmigaOS or OS X, with third party tools. I couldn’t find a similar option on Windows.

Installing drivers also proved to be problematic. If Clueless Sue doesn’t know what type of printer she is plugging into her USB port, I certainly know, because I purchased it and I don’t need Windows to “search for drivers”. I already know not only what printer I have plugged in, but I also have the driver CD, so I just want a dialog box that asks me for the driver. No wizard or anything else.

What I’m willing to point out is that if you want to do something that Microsoft has not tried or does not recommend, you’re out of luck. The system will not only often act unexpectedly, but also consider you so dumb that it will try to stop you. For example, when clicking on the Windows folder in My Computer, you will be warned that those files are sensible and you should not alter them. Right, I couldn’t tell that, I was absolutely sure my operating system was called Microsoft Doors. This adds up to other similar small things, like the annoying “Drive Space” alert (as if I didn’t have a My Computer status bar to tell me how much space I have left) or the “End Now” button in the dialogs about not responding processes, as if I had clicked the Close button of an unresponsive window because I wanted to be asked a question.

In the end, Windows simply didn’t prove flexible enough compared to what I was used to. Computers and operating systems are tools for me, and I don’t adapt to my tools. I adapt my tools to my needs. However, I did learn a few valuable things.

The Checklist

First of all, I found the Windows experience much, much better than what it used to be a few years ago. I haven’t seen a BSOD during this week, which is a serious change compared to the days when I saw at least one a day. Windows XP is quite fast and requires fairly less maintenance.

However, compared to what I am using most of the time (Linux, Solaris, NetBSD, FreeBSD, OS X and Minix), Windows proved to have three major flaws.

First of all, what’s in the box is hardly what it’s advertised to be. You don’t get a modern operating system, packed with useful features and exciting prospects. You get a rather primitive system, both in terms of architecture and in terms of basic tools. And it’s certainly not modern — the architecture hasn’t changed significantly since the first versions of Windows NT, while other systems have evolved dramatically (compare what Ubuntu is now to what Debian was 10 years ago, even at the kernel level). The much-advertised multimedia experience is pale compared to OS X and, in some ways, even to BeOS. And, for the last ten years, Microsoft has constantly advertised the improvements in Windows security and how much more secure Windows is when compared to Linux, OS X or Unices. However, I’m yet to suffer from spyware and viruses on these systems.

Secondly, Windows proved to be too much of a hassle to maintain. Windows Updates, defragmenting, virus checking, spyware checking, system checking for registry problems and other similar problems are simply too much. On the other operating systems I use, the only thing I supervise are system updates, and that’s because I want to know what it installs and maybe bypass some updates. Quite about everything else is scheduled, and requires no attention from me since the process is completely non-interactive. As a consequence, I don’t even think I can name more than 5 arguments of fsck — since the tools itself is free, all my computers use roughly the same cron file, which I just copy-pasted around, so I only looked at them a couple of time.

And finally, Windows proved to be too inflexible. There are a lot of things I can’t configure, and those which can be configured are accessed through a cryptic Registry which you have to very careful with.

Nevertheless, I’m not willing to imply that Windows is not good. In many cases, it is the right tool for the job. If I was a web developer on a tight budget, I’d rather use a low-end PC to run Flash and Dreamweaver on Windows instead of spending much more on a low-end Mac for the same reason. It still remains the right tool if I wanted to play games and I couldn’t afford a games console. And there are countless other scenarios. So I’m not willing to bash Windows here. But I do want to point out a paradox.

Despite being, essentially, quite rudimentary, Windows manages to be an incredibly bloated operating system. In time, you run across all kind of features you couldn’t care less about, but at first you simply realize that a freshly installed system filled 1 GB of your hard drive with what seems like nothing at all. This makes me think that Windows XP is probably a patched-up version of Windows 2000, built over an aging codebase, adding new features without bothering to remove those that were not necessary. And, considering that Vista is just as bare in its initial setup, but four times larger, I can only guess what Vista is patching up.

It’s hard to speculate on what will happen next. Microsoft built a monopoly on the basis of the users’ computer ignorance and not-so-competitive business practices. However, this is hardly what I’d call a solid foundation, and when a spark for decline is given, the whole thing can crumble easily.

I’m not exactly an anti-Microsoft guy (I admit I’ve seen Windows 2003 running very well on some servers, and if I needed a domain controller I would use Windows). I’m not a Unix evangelist either — my only gospel in this field is the Right Tool for the Job. Windows hardly proved as a usable tool for mine, let alone as being the Right one. However, I do believe that promoting rudimentary tools (like Internet Explorer) to industry standards only for the sake of corporate business was a major obstacle for progress. In some ways, Windows was like the Spanish inquisition, quickly destroying, reducing to underground or banning to third world countries anything that didn’t fit in Microsoft’s view. Therefore, I do hope for that spark I was talking above to come sooner.

About the author:
I’m a student and part time journalist and software development from Romania. When I’m not fiddling with computers, I’m usually singing or reading something.

If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.


  1. 2006-10-23 3:15 pm
    • 2006-10-23 3:40 pm
      • 2006-10-23 3:44 pm
        • 2006-10-23 3:59 pm
          • 2006-10-23 5:04 pm
          • 2006-10-24 1:53 am
        • 2006-10-23 5:53 pm
      • 2006-10-23 3:46 pm
      • 2006-10-23 3:46 pm
        • 2006-10-23 4:00 pm
          • 2006-10-23 4:28 pm
          • 2006-10-23 4:44 pm
          • 2006-10-23 5:02 pm
          • 2006-10-23 7:26 pm
          • 2006-10-23 3:54 pm
          • 2006-10-23 7:47 pm
          • 2006-10-23 9:26 pm
          • 2006-10-23 5:48 pm
          • 2006-10-23 7:33 pm
          • 2006-10-24 1:15 am
        • 2006-10-23 4:15 pm
          • 2006-10-23 4:57 pm
          • 2006-10-23 7:04 pm
          • 2006-10-23 7:36 pm
          • 2006-10-24 1:22 am
      • 2006-10-23 8:51 pm
      • 2006-10-24 2:07 am
  2. 2006-10-23 3:33 pm
    • 2006-10-23 3:35 pm
    • 2006-10-23 4:04 pm
      • 2006-10-23 4:49 pm
        • 2006-10-23 6:58 pm
          • 2006-10-23 7:08 pm
          • 2006-10-23 8:14 pm
          • 2006-10-23 7:10 pm
          • 2006-10-23 8:53 pm
          • 2006-10-23 9:35 pm
          • 2006-10-23 10:03 pm
    • 2006-10-23 4:05 pm
      • 2006-10-23 6:21 pm
        • 2006-10-23 6:45 pm
          • 2006-10-23 6:58 pm
    • 2006-10-23 4:45 pm
    • 2006-10-23 6:12 pm
    • 2006-10-23 7:43 pm
  3. 2006-10-23 3:45 pm
  4. 2006-10-23 4:00 pm
    • 2006-10-23 4:03 pm
      • 2006-10-23 4:55 pm
  5. 2006-10-23 4:05 pm
    • 2006-10-23 4:08 pm
      • 2006-10-23 4:15 pm
        • 2006-10-23 4:24 pm
          • 2006-10-23 4:37 pm
          • 2006-10-23 4:42 pm
          • 2006-10-23 5:38 pm
          • 2006-10-23 10:57 pm
        • 2006-10-23 4:49 pm
          • 2006-10-23 5:16 pm
          • 2006-10-23 8:43 pm
      • 2006-10-23 4:53 pm
        • 2006-10-23 5:09 pm
          • 2006-10-23 5:15 pm
          • 2006-10-23 5:57 pm
        • 2006-10-23 5:20 pm
          • 2006-10-23 5:33 pm
          • 2006-10-23 7:14 pm
          • 2006-10-23 7:20 pm
          • 2006-10-23 7:58 pm
      • 2006-10-24 9:49 am
    • 2006-10-23 5:09 pm
  6. 2006-10-23 4:12 pm
  7. 2006-10-23 4:16 pm
  8. 2006-10-23 4:29 pm
  9. 2006-10-23 4:44 pm
  10. 2006-10-23 5:10 pm
    • 2006-10-24 9:40 am
  11. 2006-10-23 5:16 pm
  12. 2006-10-23 5:23 pm
    • 2006-10-23 9:03 pm
      • 2006-10-24 11:15 am
        • 2006-10-24 10:47 pm
  13. 2006-10-23 5:32 pm
  14. 2006-10-23 5:49 pm
    • 2006-10-23 6:15 pm
    • 2006-10-23 7:47 pm
      • 2006-10-23 7:54 pm
        • 2006-10-23 8:31 pm
          • 2006-10-24 2:01 pm
  15. 2006-10-23 7:45 pm
    • 2006-10-23 7:49 pm
      • 2006-10-23 8:32 pm
        • 2006-10-23 8:38 pm
          • 2006-10-23 10:39 pm
        • 2006-10-24 10:48 am
    • 2006-10-24 9:49 am
  16. 2006-10-23 7:52 pm
  17. 2006-10-23 7:56 pm
  18. 2006-10-23 8:53 pm
    • 2006-10-23 9:27 pm
      • 2006-10-23 11:40 pm
        • 2006-10-24 11:23 am
          • 2006-10-24 3:13 pm
      • 2006-10-24 1:42 am
  19. 2006-10-23 9:40 pm
  20. 2006-10-24 6:03 am
  21. 2006-10-24 10:49 am
  22. 2006-10-24 2:09 pm