login
v2
v1

jmoiron.net

Thoughts on a Windows Install

posted April6th, 2007 @ 01:55:00

- tags: general tech

- comments: 2

I just started my new job this week at attila, and there are some things I want to talk about, but I want to kinda mull over it for a few weeks and then describe the whole situation in full in a few weeks. Any American (aged 18+, or thereabouts) knows that April means income taxes, and because most of the standalone software is for Windows or MacOSX, and I also have a need to run some graphics utilities that are windows only for my Canon 400d RAW format pictures, I decided to set up my laptop to dual boot again, installing Windows XP Service Pack 2.

For people not in the know I run almost exclusively Debian GNU/Linux and almost exclusively free (as in freedom), open source software (the few exceptions are skype and vmware). About 5 years ago Johnny asked me what I'd do if I couldn't use windows the way I wanted to anymore (or, if it always stayed the same, why would I pay for the same experience every 3 years), and I didn't really have an answer. The Unix command line interface is ages old and well tested, and the other interfaces are not central to security policies or drivers and are open source which means if you wanted to use a very old copy of FVWM you probably could provided you adjusted the code slightly for new versions of libc or X.org.

People that are happily running Windows XP will eventually be forced to upgrade when Microsoft stops "supporting" XP, and in this event there will be no "community support" and no option for any group of individuals (dedicated or otherwise) to keep the operating system viable. Times change, security vulnerabilities start to go unchecked, and new hardware starts to lack drivers; and even "good" OSes go out to pasture. I'm sure a lot of people using the internet today have memories of Windows 3.1 (which didn't ship with a TCP/IP stack, which means no internet), or Windows 95 (which lacks USB support; the few times I installed it was on a computer that couldn't boot off of the CD-ROM device!), or even Windows 2000 (which can't do cleartype and lacks sata out of the box). Linux doesn't have these problems in quite the same way, and if any change was ever made that was sufficiently disliked by the community at large, things could be done by them to change that behavior (case in point: spatial browsing in nautilus).

Now that this mini-diatribe is over, installing XP was a somewhat eye opening experience. The operating system is getting on in years (It came out in 2002 I believe, so it's 5 years old), but service pack 2 is a fairly recently released update. Still, it ships with only 2 file system drivers. It ships with a default text editor that chokes badly on two of the three major line break styles. The systems configuration is largely obscured from view (an effort at simplification), which makes things much worse when the system doesn't actually figure out what it should do properly.

There were no video or sound drivers available for my laptop, nor were there ethernet drivers or wifi drivers. Take the kernel that came out when SP2 did, and these are all supported quite well. Asking windows to search windows update for my wifi drivers (after installing my ethernet) caused a rather abrupt Blue Screen of Death, which corrupted some files of unknown importance in the C:Windows directory. Upon installation, windows bugged me incessantly about my firewall, antivirus, and authentication statuses, all of which had their "go the fuck away" options obscured from plain view.

There is a genuine lack of free, quality software on windows. Being very tired of the windows build of Gaim (which doesn't play nicely with shared GTK+, performs horribly, and handles or chokes on UTF-8 text depending on which theme you use), I decided to give Trillian a try. Apart from their dickish attitude about their product, it seems to be written quite well (my first experience with trillian was something like 7 or 8 years ago, when it was just painful). It fails a major gripe many people have with Linux in that it doesn't use WinForms, the native windows widget rendering, but then again... neither does any application that I use on windows (firefox uses XUL, winamp uses it's own thing, putty implements its own terminal stuff and winscp uses some weird style that makes it flaky in wine). It's also designed very poorly in that much of it's user interface is duplicated in about a thousand different places. Even in "minimalist" mode, I still have 4 places I can click to access my options (there are two adjacent trillian icons at the bottom of the buddy list, the trillian menu, and the tray icon) and the tabs (placed inexplicably above the menu bar) also have information duplicated in a completely useless and uncancelable title bar.

When you use linux for long enough you come to understand that editing a text file might be necessary to run some program successfully, whereas in the windows world if something does not start up with a GUI showing you your options it can be assumed something has gone terribly wrong. You understand that "normal" computer users won't want to edit their X11 config or change their text editor configuration by editing a hidden file in their home directory, but after you are used to it is a very optimized system. All system preferences are easily migrated by copying your home directory over, and you start to understand where most programs will keep their files (docs in /usr/share/doc/, binaries in /usr/bin/, preferences in ~/.programnamerc or in /etc/ for system daemons). But if I spent hours configuring Trillian, Winamp, Firefox, etc, how do I save these configurations? It's possible, but it's a different solution for all of them.

Finally, two related gripes which I find fundamentally destroy my enjoyment of the operating system. One is that applications are written by people who do not understand the foundation for Windows (which is DOS) and in most cases this ignorance is facilitated by the concentration of Microsoft developer tools. Nothing installs it's main application in the PATH, so there is virtually NOTHING I can do when I'm in a cmd prompt. Not only that but virtually no visual applications offer any kind of command line options at all, and very few (notably archivers) offer the ability to operate in command line or GUI mode. This means that virtually everything needs to be "clicked on" to be run, which essentially amounts to visual goto's, and that virtually everything runs in interactive mode, which is the second major gripe.

You cannot use windows applications except to the extent that the application writer allows you to interact with a GUI in real time. Even program installers that never ask you any useful question ("Welcome! Please click next." "I'm going to install this, click next." "Do you want me to install in the default location? Please click next." ... ) can't be run in a batch; 1 program takes 1 unit of time to install and 5 take 5 units of time and 5 times as much user interaction. You can't chain the output of one application into the input of another, or run a batch job even if the program doesn't explicitly allow that functionality in a menu somewhere, not because this level of scripting or I/O redirection isn't possible in DOS (most unix stuff is possible in DOS, in the worst case by extremely ugly and somewhat functionally inequivalent hacks) but because there are just no applications that run in batch mode. Batch mode "applications" do not fit the desktop paradigm, but the alternative is that a user tries to find software that does every possible combinatory processing of it's type on any number of objects in any number of places any number of different ways for every type of process they want to run.

A case in point: a frequent visitor to Amit's chat wanted some software that could batch convert images from one format to another, or from one size to another. He just wanted a new copy of all of the images in one directory but changed in one way. This is actually a pretty commonly implemented thing in many image processing programs, but the real problem here is that it should be possible, if the parameters for a program are known, to allow the computer to run that program on any number of files automatically, or with a simple looping batch job. With the interactive program that presents an interface to you where you have to decide at each step what the computer should do (rather than tell it ahead of time to do X action 500 times) puts the bottleneck at the user who is much slower than a processor which can perform arithmetic operations every few nano seconds.

This inherent lack of programmability doesn't bother the layman, because the layman has long ago internalized the word "computer" as some new invention, and not merely as some machine that computes things. These things needn't be merely what application writers think you ought to compute and in what ways they think you need to compute; and that's the real freedom of Unix (and shells in general) and that's where I really feel confined in the Windows environment. There are a few other silly behavioral quirks that I consider downright bugs: the window manager has 0 options at all and forces me to snipe corners or thin bars at the top of windows to move and resize things, the scroll wheel does not always scroll the visible container it is hovering over and this seems to be application dependent, it offers no easy way to turn off incredibly annoying features like the notification area.

In closing, there are a few things that I think Windows does remarkably well. It's user interface is actually responsive compared to any other interface on the planet (OSX's included; OSX is slick but it is anything but responsive in my experience). It's also a decent mixture of attractive and unimpressive; many UI components are rather intuitive but unfortunately are rarely used. The display introspection works fairly well (although linux largely has this nailed now, too; OSX need not apply on a lot of these since it supports only what .1% of the hardware variety that Linux or Windows supports and so OSX "just working" is far less impressive). The font rendering is quite nice out of the box (I prefer it to apples, actually) and I don't have to mess around with it too much (the situation on linux is unbearable at times). The power management works very well, including sleep and suspend! This isn't the case for all machines to be sure, but considering how much of a hassle this can be across different hardware I am quite impressed.

Overall, though, Windows usage was a fairly negative experience.

comments

from wt on Thursday Apr 12th, '07 @ 17:55#1

dead horse

from jay on Thursday Apr 19th, '07 @ 18:28#2

I actually haven't ever really used Windows XP as my main operating system. I used Windows 2000 for a few years during school and then switched to Linux.

I figure "there must be some reason people use it still", and the only thing I can come up with is that it's pre-installed. I've long since weened myself off of any dependencies on various commercial programs that would keep me using the OS.