Ok, do I really need arguments?
Just as a disclaimer: I had been a Windows user since MS-DOS/Windows 3.1 times and moved to a MacBook about 2009.
If you're only using Windows for consumer stuff like, let's say, surfing the web and you've never used MacOS or Linux you might not see the need to complain about Windows. But when you're trying to be really productive and if you're trying to develop software, maybe even using Windows Server, oh damn sure you will complain.
The Windows command prompt
cmd.exedoes not even deserve the name.
The auto-completion is terrible, when you type
a, then hit TAB, and you have ten files starting with
a it will complete the whole word, not only to the next difference as
bash would do. This drives me wild.
Select text, copy & paste text? Easy right? Not in the Windows command prompt. You need to right click,
selection mode, select text, hit ENTER. Then, right click and
paste. Who the hell would implement that crap?
Ah, right, the 'Quick Edit' mode which is not default, can be enabled in the settings. Which at least allows direct selection using the mouse and pasting it using right click. Which leads to the next section...
The selection mode is rectangular. Rectangular!! WTF? Does anyone ever used the rectangular selection mode? If you have line-wrapped text and you want to select it, you need to select a left-to-right rectangular area. When pasting, the line wrapping is replaced by a line-break which is terrible when selecting larger areas.
But here's the worst thing I've seen in the Windows shell so far: Being in selection mode will actually STOP the current process. Let's say you have a command line application that runs some endurance test, and you want to select some text from the shell, the application process stops!! Yeah, it stops and will resume as soon as you leave the selection mode.
This actually made the work of one day obsolete because we had such an endurance test running but accidentally being in selection mode.
Oh, the Window has this nice resizing handle, let's try to resize the Window... Nah. Not working. You need change the window size AND the window buffer size statically to change the width of the window.
Some of the pain can be at least alleviated by changing the preferences. But, you need to change the setting for both the current AND the default settings.
When I heard of PowerShell, I was thinking 'wow', finally they've realised that they need to improve the shell. Then, I started PowerShell and it looked as
cmd.exe, except for the light blue background. I typed
asdf and hit ENTER. Ow, my goodness, I was presented with a horrible inline error message with red background that the
Commandlet was not found. This is so ugly. I red the MS docs on how to change the color scheme. The wrote something like 'we specifically chose the colors to make error meet to eye'. Really?
Let's see how the new and improved shell works. Ok, I need grep (find strings in files), how does that work?
get-childitem c:\windows\system32\* -include *.txt -recurse | select-string -pattern "Microsoft" -casesensitive
What? Srly? Here is what it would look like in Linux / Mac
grep "nix" /usr/bin/*
This has improved a bit with Windows 7, but still this is horrible. Very often, an empty Window is display or you even get visual artefacts when moving a hanging window. Then, when it comes to IO, it gets worse. A slow network drive can make the whole OS hang.
This file is open in another program
Really? Then f**king close the file. But no, this is really difficult for an OS to handle files, right? But not enough, Windows is not even able to tell you which program has actually opened the file.
Wow, every week, lots of Windows Updates... And by default, it will just reboot Windows after 10min or something without asking you permission. Again, if you have some test running without actually sitting next to your computer, it will just stop the test and reboot (Yes, that has actually happened).
When you have disabled that stupid 'feature', still you get numerous updates every week. And always, you need to reboot your computer. Ok, no problem, I'll do it on friday before I leave the office. But what happens monday morning?
Windows is configuring updates...
Shouldn't it be possible to do everything before shutting down? Other OS'es manage to do that...
Yeah, German is nice but I'd like to have my OS in English. Should be possible right? Like going to the system prefs, language, select english, apply... Does that work? No, of course not. That would be too simple.
If you're running Windows Server or Ultimate edition, you can search google for a language pack, but oh be damn sure to find the right thing. You'll probably find Language packs for 'Windows Server 2008'. Download, install - error.
Ok, let's see... Ahh, 'Windows Server 2008 R2'. Download, install - error.
Ok, let's see... Ahh, 'Windows Server 2008 R2 Service Pack 1'. Download, install... no error.
Lucky one. Now you can go to the prefs, and change the language to English. Holy crap...
Now, let's say you'll have Windows 7 Professional. It's professional, right? But not professional enough to support more than one language. You won't find any language pack. It's not supported.
You're doomed to use a non-English Windows? Then everything is localized. Directories, Applications and even Users and Groups. I didn't know whether to laugh or cry when I saw that the local user group to which admin users belong is localized and is called
Administratoren in German and obviously
Administrators in English. And there is no non-localized unique id for this group. So when you try to write an install script that needs to access this group, you simply can't if it should work with different langues. This is ridiculous.