What’s wrong with Windows
Microsoft Windows is a basically an 80ies operating system, aimed at non-networked single-user workstations with everything else just thrown in. And it shows. Add a lot of incredibly stupid “backwards compatibility” hacks and you get a nightmare.
- Kernel. Might be quite good, but it has one big deficiency: It’s not Unix. I doubt they will or can change that, tough it would help a lot in porting software.
- Filesystem: Case-insensitive but case-preserving is an utter fuckup and a security-nightmare too. You already shot yourself into the foot with IIS and this
- Fragmenting Filesystem: No Unix-Filesystem does fragment, so why does NTFS? (And don’t even get me started with (V)FAT; that one should be shot).
- Charset: Get rid of that fucking cp125x-charsets. Now! Everywhere! Make it impossible to choose it anywhere. Use UTF-8. And bid those “smart-quotes” and other non-standard crap goodbye.
- CR/LF. Do that CR away, this is not a typewriter anymore, I hope..
- Shell: Backslashes and Drive-Letters are a bloody nuisance to every (C-)programmer. Who in his right mind would choose the escape-character as a directory delimiter?
- Terminal: No, a Terminal should not be limited to 25×80. You need to be able to change the resolution, and you also need to be able to switch the charset. And copy & paste must work too.
- Control Characters: Misusing BREAK (Ctrl-C) as “copy” is a bad idea. Terminal control characters hsould never be used for anything else but their original use. You’ve got a Hyper- (Windows-) Key, use it.
- Mouse-handling: I personally can’t stand click-to focus. Not only I use sloppy-focuse, but I also want autoraise. Windows can’t do that, and it even collides with its dozens of modal dialogs. Oh, and on Unix you can do copy & paste with the mouse alone, no keyboard required…
- Modal Dialogs: Tons of them, most of them completely uselessly so.
- Registry. Please explain the benefit of this monster over config-files with a clearly specified structure.
- Incoherent separation of user-config and system-config (resulting from the registry). I should be able to take my personal config from one account to the other by act of simple copying.
- Missing desktop-features: multiple desktops of course.
- Look and Feel: Where is the problem of letting the user specify how his widgets should look? Especially if I don’t like this Fisher-Price-look. As far as I can tell, these are easy customisable. And yes, ALL of them should change their look simultaneously. No Funny business with a different look for Media Player, neither
- Localization. This is very bad. I should be able to change the language of the GUI on a click. But at least per user. And I should not have to download a different version of some patch or some service pack depending on the language I’m using.
- Over-Localization. The different versions for different languages suffer from another problem: Everything is localized that should not be localized, including macro-languages (!), “AW” instead or “Re” in e-mails (opposing RFC 2822, no less) and even system users (ever seen a user “wurzel” belonging to the group “rad” instead of root:wheel on unix? Well you get indeed “Administrateurs” on windows).
- Decent Editor. Per default. One where you can choose that the input uses CR, CR/LF or LF and saves only with LF. One where you can select a charset for input (and save as utf8 only), one which can open files up to at least 2GB.
- Directory-Structure. Only a fucking idiot would name the programs-folder “Program Files” — with a space in it, and what’s more, different in every language! Why not just “programs”? And more: Why is there such a mess in the windows-folder? and the windows/system folder? And why are users preferences and files there too??
- Missing Home. No clearly defined directory where the users data should go. Well, there is one now, but the applications don’t adhere to it.
- ACLs. An actually nice feature of windows — if the default ACLs weren’t so braindead. Who got the idea that users need to have write access to the root or the windows-directory??
- DRM. Either this goes out of Windows, or Windows goes out of the window. Digital Restrictions Management is not a service to the user.
- Registration. And especially the failing of it if your hardware changes.
- Standards: They exist for you to use them, not to invent stupid competing formats. Away with that WMA, WMV, DOC, XLS-trash. You can still support them, but store your information in open and standardized formats in the first place, like mpeg, mp3, ODF. I want to hear “You might loose some information if you store this Open Document Text in Microsoft .DOC-Format. Do you really want to do this?”
- OpenGL: Speaking of standards, it should use OpenGL like all other operating systems, instead of DirectX.
- TWAIN: An utter fuckup of a standard for scanners. Should have been ditched in favor of SANE a long time ago.
- Autostart: The one for changeable media. A security problem, of course. Ditch it. Not necessary, just to save one click. Yes, you can turn it off, but actually it should be impossible to turn it on at all.
- Mandatory Locking: A nightmare for doing backups or working with shared ressources.
- Package-System: There is none. Every application decides itself where it wants to install things and whether to tell the operating system what it has done. Not only a security- but also a maintenance-nightmare.
- Error Reports. They’re here to tell you what went wrong, not to obfuscate the fact that you did not think that an error might happen in the first place.
- Help. What about a help-system which is useful? What about documenting the programs (and their hitherto unknown commandline-switches and registry-settings)?
- Reboots. There is one reason, and one reason only, to do a reboot, and that is a kernel-upgrade. And no program-, library or driver-installation warrants one.
- Internet Explorer. Either you do it right (XHTML, CSS, DOM, EcmaScript), or throw that garbage out of the system.
- Outlook. Either you do it right (raw-text, charsets, proper quoting, pop3-handling), or throw that garbage out of the system.
- Active-X. Throw away without replacement. It’s an unfixable security nightmare.
- 32bits. Yes, it’s about time for the next version only to offer a 64bit-version.
- Monitoring. There’s a standard, it’s called SNMP. And you’re supposed to export your status there, especially if the application in question is Microsofts own directory- or mailserver. At the least, your SNMP-server should be able to be extended with the output of monitoring programs. The lack of things like these are precisely the reason Windows has no right to exist in an enterprise environment.
- DNS poisoning: The underscore “_” is not allowed in domain names. How come Active Directory still does this in 2012, and you can’t turn it off? Obviously, Microsofts DNS-servers do not belong onto the internet.