My first experience of .Net is of not .Net at all, but rather of that lovely environment called M$ windows.
Now all in all the general user interface of Windows is not so bad, I was rather surprised that I could actually operate the entire GUI using my keyboard quite easily (although this doesn't apply to M$ apps buts that's another post).
Unfortunately when you have been using Ubuntu for the last two years some glaring choices start rearing their heads:
- No common repositories of applications ala apt. Now I know M$ is not the only OS vendor to have this glaring hole (another BLING-BLING OS comes to mind) but you would think that M$ would have gotten the power of the internet by now.
- A decent shell, hopefully Powershell will fill this void.
- A sudo like utility, You can however add your domain user to the administrator group of the machine, creating a lovely little security hole on the machine.
- Tabs in explorer. I ABSOLUTELY REFUSE TO LAUNCH IE 7 just to browse the file system.
- the fact that they use "\" instead of "/" when URIs use this scheme anyway. If you don't think this is relevant, ask a Java dev of some cool hacks they've done with URLs using the "/" scheme.
- The fact that in order to install stuff you need to have the Windows installer service running. This service actually crashed on me and I was unable to install anything until I rebooted the machine. What M$ is doing here I don't know, I doubt it involves logic.
- The Windows registry; slow and arcane making Windows the only OS which actually slows down after time and if they think that HKEY_SOMETHING_OR_OTHER makes life easier than POFs (Plain Old Files) the geek hatred of M$ starts becoming terribly justified. If I uninstall applications I WANT THEM UNINSTALLED. Why on earth do I still have registry entries floating around. The best part is that you can BUY a third party registry cleaner, you think that with a football stadium of developers for WinXP M$ could have at least included one gratis.
- The stupid requirement to have drive letters as opposed to mount points in the file system. When I first moved from Windows to Linux I initially thought the mounting idea was silly, I mean it made accessing floppies and CDs a lot harder, however when you start writing scripts around the Unix file system you suddenly start appreciating the genius of this abstraction.
- Windows lack of Case Sensitivity. Case sensitivity is initially a pain in the backside but an immense plus when you have to interface with components where case becomes important. Just ask anyone trying to resolve conlicts because of case insensitivity in a case sensitive environment such as Subversion.
Having said all this I'm finally at the point of starting with Visual studio after only two days.
Watch this space...