Sun, 04 Nov 2012
There's this new Windows thing that people keep talking about, and
which attempts to replace Linux as the major operating system. I've
given it a look, but there's a wide range of problems with using it:
- When you buy some hardware for your Windows machine, it hardly
ever works out of the box: you first have to fiddle with some CD-ROM or
manually (as opposed to through your software manager) download
something from the Internet, or any number of other things (and in some
cases even all of the above), before it'll even do anything useful. This
is even true for keyboards and mice: the first time you plug in a USB
keyboard to a Windows machine, it'll take about 30 seconds before they
will work. It's much easier to have drivers for everything shipped with
the operating system, so that things become really
- According to Microsoft, faulty hardware drivers are the main cause
for Windows crashes. It would be better if Microsoft were to develop all
(or almost all) hardware drivers for Windows themselves, like the Linux
kernel people do; by doing this, the quality assurance for the drivers
could be guaranteed as is the case for Linux drivers, and Windows users
would have much a more stable system.
- There is no public bug tracking system for Windows. What this means
is that if you've got a problem with Windows that you'd like the
developers to take a look at, you're out of luck.
- Many Windows programs and drivers come with an "updater" which every
so often checks online for newer versions of the software. While this is
something Linux distributions also do, in Linux distributions this is
done through a central updater; in contrast, Windows applications all
have their own updater. The result is a situation where you have
something like 5 to 10 updaters running in the background, eating memory
and other resources, and slowing your system down.
- Every major update of Windows since Windows 2000 has seen a complete
overhaul of the user interface. As a result, everything you've learned
goes out the door, and you have to relearn how to use the system all
over again. This is about things like "where in the control panel is
<foo>" or "what does my desktop look like"
- Windows does not support focus-follows-mouse without manually
calculating bit masks in a registry key.
- Windows does not support virtual desktops without extra
- If you don't like the Windows interface, it's almost impossible to
swap it out entirely for something else, like you can switch from Gnome
to KDE and back under Linux. Different people have different
preferences, so should be able to swap the user interface for something
that better suits them. This is child's play under Linux, and impossible
- While much of the Windows interface can be controlled
without the use of a mouse, parts of it cannot be. If you're doing the
same tasks every day, then using the mouse will slow you down; a
keyboard is so much faster. Under Linux, it's perfectly possible to use
the system without the use of a mouse, and without losing any
functionality (except if you want to play games, but this list is about
Desktop usage, not about game console stuff)
- It is impossible to try out the new Windows without investing large
amounts of money into a recent computer. In contrast, this blog post is
being typed on a 7-year-old Macintosh PowerBook running a recent version
- It is very difficult to use a single Windows application (i.e., not
an entire desktop) over the network. In Linux, you can just use SSH to
log in to a server and start the GUI administration console there, but
run your desktop environment (and whatever else) on your local machine.
Windows doesn't have that, so you need to add large amounts of memory to
Windows servers just so they can run a full (unneeded) desktop just so
that you can maintain them.
- Windows doesn't have mandatory access control subsystems like
SELinux or AppArmor. What this means is that anyone who knows of a bug
in a part of the system that runs with administrator or system
privileges, has the ability to take over your entire system. With
mandatory access control, this isn't possible. There is "Mandatory
Integrity Control", but it uses a simplistic level-based system, and is
only supported on the desktop; so on servers, where it would be most
needed, this isn't available.
- Windows cooperates very badly with other operating systems.
If your company has a hybrid environment, you'll always need to
special-case the Windows systems in the environment for one reason or
another. What this means is that if you're the first user in your
company to use this Windows, you'll probably not get much work
- The new Windows only runs on the x86 processor family. If you have
invested in, say, a mainframe, or in a rack full of PowerPC or MIPS
processors, you're out of luck and had better stuck with Linux
- Windows has bad backwards compatibility. When I have this old Linux
application that I still need to run for one reason or another and which
doesn't run on a recent Linux installation (which is very rare in and of
itself), I can install an older version of Linux in a chroot without
having to run a full emulated machine, and the older application can
then run in that chroot. Windows has a "compatibility mode" for older
applications, but it doesn't work in all cases; when it doesn't, you
would need to run a full virtual machine in which you run the older
Windows just so you can run the older application. That's just a
terrible waste of resources. It's also not possible to do this without
installing extra sofware.
- The standard Windows installation doesn't contain a lot of software.
there is a basic word
processor, but it doesn't have many features. There are almost no
games, other than a few boring card games. There is a graphics editing
program, but its feature set is fairly limited.
- Unbelievably, you need to pay for most Windows software.
This is just strange; you can do many useful things on a Linux system
without ever having to pay anything for off-the-shelf software. While
some of the tried and true Linux software that we all know is now also
available for Windows, if you want to use, e.g., Microsoft's
productivity suite, you'll have to pay for it.
- Speaking of that productivity suite: there's a well-designed and
widely accepted open standard, called ODF, describing the file formats
that productivity suites should use. Yet, Microsoft chose to design
their own; their description of this file format encompasses more than
5000 pages, and is in general fairly badly documented. What this means
is that once you start using Microsoft's productivity suite, you'll have
a very hard time moving away from it again. I recommend against ever
starting to use it in the first place
- And last but not least, Windows doesn't come with the source code.
What this means is that you can't just look at the code and learn how
things are done, or develop your own extensions, or audit the code for
bugs, or any of a number of other things that you'd want to do with a
regular operating system. Instead, you'll have to trust that Microsoft
did the right thing, and beg, hope, and pray that they'll fix your bugs
if you ever need to. I'm not sure what the hell they were thinking when
they decided that.
In short, while this Windows thing has some promise, the above list
shows that there's clearly still quite some work to be done
before anyone can even think about starting to use it
seriously. Hopefully the Windows developers will understand that and
work on the above list of serious issues; otherwise, I'm afraid
Windows will not be used by many people.
Update: before you go all berserk and start
commenting on this list, please read my followup
to this post, which explains the point I was trying to make.