Thursday, November 25

Windows (I)

I have been helping with an overdue web app project lately, and the project uses ASP.NET MVC, so I have had to use Windows for most of my day. Since I had been using GNU/Linux almost exclusively since 2003, this is quite an adventure (imagine trying out GNU/Linux after a seven year break). It is not nearly as bad as I thought it would be, even though I am using the not-so-well-liked Windows Vista which came pre-installed with my computer.

The first thing that struck me is how much less important the OS is when compared to the situation a few years ago: a lot of the applications I depend on are web-based (GMail, Google Calendar, Google Docs, Springpad), and the ones that are not web-based are multiplatform and installable with a few clicks (GVim comes to mind). In fact, I do not think there is a single piece of software that I really missed in Windows. (An interesting corollary of this observation is that it should be equally easy to migrate to GNU/Linux nowadays.)

The one thing where the operating system matters is hardware support, and I do not think I have to say much here. After years of whack-a-mole GNU/Linux upgrades which would fix support for one component but break another (for things as essential as video and sound), it was absolutely weird having all hardware work properly at the same time (sound after suspend! no video glitches! high quality webcam picture!). There is no point recounting the reasons why hardware support in Linux is as it is, but now I am starting to think that Linux users do tend to suffer from a sort of Stockholm syndrome regarding hardware support; I know I did.

The other important thing that operating systems do is resource management, and I did not have problems here either. In fact, I liked the virtual memory behaviour much better: when Windows ran out of memory (I had filled up the smallish Windows partition and there was no space left for the swap file to grow), it started rejecting malloc calls from applications, but the system was kept alive and responsive, and I could close apps and clean up the mess without much trouble. In Ubuntu, with the default settings, whenever a runaway process ate too much RAM, the system would start thrashing so hard that it would be very difficult to fix. My standard procedure (switch to text console, log in, find and kill app using command line tools) would take minutes and was so annoying that I would sometimes just reset the computer instead. And in the end, even if I did not reset, an important app would possibly be killed anyway. I know there are kernel parameters for tweaking this behaviour (swappiness?), but I never got around to figuring them out as this situation does not arise that frequently, and testing is painful.

I did not like the Windows FS security model. ACLs are much more complicated and thus less transparent that the Unix approach, even though they are more powerful. My main gripe with them is that I do not know a good way to display them easily (as with ls -l in Unix). I have not had to deal with them much though.

I have had no stability issues. It seems that this argument should be put to rest.

Long blog posts are annoying, so I will leave the user interface, the developer experience and my complaints with the system for separate posts (edit: you can now read my next post about the UI).


Anonymous said...

The key phrase in your post: "Vista...that shipped with my computer". That's why all the hardware worked, not that Windows magically supports everything out of the box.

David Weinehall said...

@Anonymous: Agreed. In general Windows has a lot worse support for random hardware than Linux does.

FWIW, Debian worked on my laptop (with support for everything; internal 3G modem, wireless, sound, suspend, webcam, fingerprint reader) without having to download external drivers.

Now, a challenge: pick a random motherboard, soundcard, monitor, network card, video card, webcam, etc. and assemble a computer. Try to install Windows on the hardware *without using the extra drivers shipped with the hardware*. Good luck!

Anonymous said...

I have used Vista on many different hardware setups. I have had zero problems over the last 5 years. drivers or modules; what does it matter whether they are supplied by the board mfr. or not.

Window is a stable mature OS. I use Debian for all my servers and Ubuntu for some of my desktops, but I have had no problem using Windows as a client OS on laptops or desktops. I use OSS for all of the applications with no problems at all.

The only thing that the latest Windows does not support well is legacy hardware. On the other hand how many P3 coppermine servers or desktops are out there.

That's where Debian shines. I have 2 P3's wit 500MB of RAM that serve as the network NAS. Windows can't do that.

Erik Johansson said...

Yes, the changing tides of HW suppport for gaphics and sound does make you want to run Linux under a VM sometimes. (I have never done this though).

Stockholmsyndrome indeed feels apt, I'm located at Norrmalmstorg right beside the bank from where the term originates.

Aigars Mahinovs said...

I miss a good terminal and shell in Windows. Also I miss init.d, cron and all kinds of POSIX utilities for the command line.

Matthew W.S. Bell said...

I'm in a similar situation and I absolutely hate using Windows. I miss practically all the software I use. However, the most achingly painfully obvious omission is software management/installation. (In fact, I sell expensive software one of whose main selling points is this functionality).

Marius Gedminas said...

The last time I had to use a Windows machine I was surprised to find the window buttons on the wrong side :)

I tend to miss things like focus-follows-mouse, the ability to drag windows by alt-clicking anywhere inside the window, multiple workspaces, a decent xterm with scrollback, a decent shell, apt-get, easily-installable OpenSSH.

I guess all of this is about UI/UX rather than apps, so maybe I should've saved it for your later post.

Anonymous said...

Spent 4hrs @work trying to get a PL2303 based serial adapter to work under windows 7 and ended up buying a FTDI cable.

Both cables FTDI and PL2303 work out of the box on linux.

The things I miss most under Windows is the FHS, a working software management system and the freedom to configure the GUI like I want (mostly the same issues another poster pointed out before me: alt-click windows dragging, virtual desktops, ...)

If you get used to this level of comfort, windows is just a pain in the a**.

Gintautas Miliauskas said...

I do miss the terminal. A lot. My coming post will be covering that, and app installation methods too.

Anonymous said...

I'm a Debian Developer and I also happen to work for Microsoft, so I'm revisiting Windows after 8 years. In my case I started with Windows 7, which as I've heard has a series of improvements when compared with Windows Vista. I'm a heavy user of Cygwin, Strawberry Perl, Putty and WinSCP, as well as Pidgin. I do miss init.d. A package management system would be nice (coApp?) but I understand now that Microsoft's ecosystem for apps does not work in the same way of GNU/Linux. I have both IE9 and Firefox (Minefield) and while I've been using Thunderbird for my personal IMAP accounts, I find that Windows Live Mail is quite more stable. Overall Win7 seems very stable and I've had no issues in that respect. I haven't had the need to "tweak" the UI but I'd guess it's not as "easier" as it was on Linux. I recovered lots of misfunctioning hardware that I had in Linux, such as audio (sid updated broke my audio), fingerprint reader (never worked in Linux) and even fans. But I do miss to plug a USB mouse and have it "just working" in milliseconds, and I'd guess some more specialized hardware would require more work. I'm NOT missing I can read and save ODF files from Office 2010 and the UI feels clean, stable and fast in comparison. Nice post, I'll follow your series.

Cloud IT Zone said...

The place else may I get that kind of information written in such an ideal way? I have a project that I'm just now running on, and I've been at the glance out for such information.