I’ve come to the conclusion that the only thing that will help Microsoft staying a “successful” company for the next, say ten, years is a new—radically new—operating system. XP was not enough to stop the inertia coming for all the years of DOS, Windows 3.11, 95, 98 and ME. Neither will be Longhorn, as I can see it.
Microsoft needs a revolution. WordNet defines this word as:
drastic and far-reaching change in ways of thinking and behaving;
and that’s the way I see it. (The other definition,
of a government by those who are governed, would be even nicer,
but in this post I’ll try to stay on the technical side.)
In terms of Microsoft, that means dropping backwards compatibility from the view of the OS. Longhorn is still able to run Visicalc, and this is something that doesn’t need to be. If I really wanted to run Visicalc, I’d use a real emulator like DosBox, anyway.
Note that I say “from the view of the OS”. They should do it like Apple. Mac OS X is still able to run applications written for Mac OS 9 and sooner, but they will run in an emulated mode, which is clearly separated from the rest of the operating system.
Once they have thrown all the old mess away, they need to fulfill these 6 points:
Drop drive letters
This is a step that should have happened shortly after DOS got directory support, which would be version 3, IIRC.
Drive letters have absolutely no useful purpose anymore, instead, future versions of Windows should have a file system with a single root, where external disks and devices are being mounted on.
This includes weird devices like
NUL:. These are, nearly
20 years after their introduction, still responsible for a lot of bugs
and crashes, not at least of IE.
It would be that easy: I simply drop my document on
/Devices/Printers/LaserJet, and voila, it’s getting printed.
Drop file extensions
Same case here, this can be done a lot better: Every application may
include a entry for a
file(1) like program that maps the file itself
onto a MIME type. This MIME type gets mapped to matching programs then.
Also, for security reasons, only programs and scrips with an executable flag set should be possible to run. It should be fairly easy to enable that flag, but mail programs and other open gates for virii and worms shouldn’t set it on their own.
Instead, get a real package management system, like for example
apt which can handle dependencies and ensure clean
removal of packages.
Alternatively, provide Mac OS like disk images, which include all files the application needs in a single file, ready to be “installed” by drag and drop.
Drop the registry
Going the step to program specific configuration files is a trend I see on lots of applications today. Therefore, remove this mess. (Possibly provide a backwards-compatible API to access configuration files using registry like structures.)
This was one of the biggest mistakes ever, so repeat after me: A file is essentially a string of bytes.
A file is essentially a string of bytes. This means it will be the same no matter how it’s read.
The conversion from single-byte newlines to CR/LF has been a source of endless confusion to programmers coming from a non-DOS background. Drop it, no-one needs it anymore (or so to say, … needed it ever).
Drop the bloat
Longhorn is expected to take 1 Terabyte of disk space and 2 Gigabytes of RAM. I don’t this this needs more words.
Furthermore, it would be nice if they included a nice Unixish
environment. I think a lot of Windows power-users would love to be able
cmd.exe (although the latter is a lot
better, admittedly) and use a real shell. Inside the estimated 1
Terabyte for Longhorn, there surely should be some space for the unix
utilities, a ported GNU toolchain and a portable language usable for
quick scripting, such as Perl or Ruby.
And this is only the stuff that I count to the operating system. A lot also applies to their other applications; the Internet Explorer could badly need a revolution too, for example.