The sad transition away from Microsoft Windows


I became a developer because of the rapid speed that you can prototype an idea and bring it to fruition. It is a satisfying feeling to produce something that is useful so quickly. I started coding at age 11 on the commodore 64. My first serious program was an oscilloscope interfacing with the parallel port and a self made circuit board when I was 13.

I have developed on a number of platforms, which was sometimes different that the platform where the product is eventually hosted. But I’ve learned along the way that nothing beats getting as close to the real thing for reproducability – i.e. performance characteristics, interoperability, or debugging.

There have been quite a few development tools that have led me to use Windows. Visual Studio, SQL Server Management Studio, and the myriad of smaller tools that one or another were not available on another platform (Fiddler, “Modern Web Browser”, Serious file explorer). Companies continue to sponsor my MSDN subscriptions and allowed the me unfettered access to all the Microsoft product range unhindered.

I’m showing my age here, because your saying to yourself that great alternatives to all these exist. The key here is the word alternatives. It infers that the original was the benchmark to be compared to. But of late, the alternatives are exactly the same product compiled onto a different platform – for example, browsers and IDEs, and cloud options to as of late, i.e. Google docs/sheets, and Jupyter.

I had a few years developing while using the Linux and Mac OS. However my platform of choice still leans towards Windows. Almost everything found on other platforms can be found on Windows, with some pointy exceptions (i.e. iOS development). Bash, regex, gnutools, databases, IDEs – they are all there. I am fond of shortcuts, but they are all there now for all the major platforms. Even free anti-virus provided my Microsoft, if you trust it…..


Windows has had some rough releases. Windows Me was a throw-away. Windows NT wasn’t a serious desktop platform thus wasn’t for development. Vista and 8.x reminded everyone how bad it could get. And now finally Windows 10 seems like a deliberate attempt by Microsoft to alienate it’s developers.

  • Windows firewall is a joke – any app/malware can add a rule for itself
  • The OS has ads in it (but wait, didn’t I pay for this OS??)
  • Great features have been removed and replaced with paid “premium” features
  • With each update something breaks – re-installation is usually the only option
  • New revenue generating features are hard to remove (cortana, app store etc)
  • The server version installs new apps from the internet without consent – WTF??
  • Forced Windows Updates have killed many PCs in our company
  • Forced reboots mean sometimes a work PC can’t be reached remotely
  • There are 2 versions of the UI – an old one, and a new one without enough features to complete whatever task! For example, try setting up a VPN client!
  • The OS size has bloated out to 30GB
  • Windows start menu is so bad that a greate alternitive called “Classic start menu” is popular

Visual Studio was really stable with version 7, and again with version 2008 and 2010. With 2013 a lot of auxiliary features were wired in which jeopardized the stability of the development environment. It has continued down-hill since then. We have special scripts to delete our .suo files with VS 2015 and 2017 just so that we can open the solution. Thinks like TypeScript, BCL and nuget are highly problematic.

SQL Server Management StudioВ and SQL Server stand out above the competition for the range of reliable features. The 2000 release had a number of features that made me start recommending it as the database of choice, along with how stable it was. However, the product is being collapsed into Visual Studio, and with 2015 its no longer stable (and 2017), yet has no valuable feature enhancements since 2008!

Windows shell has been replaced with powershell. I never liked windows shell, and always used a *nix alternative like cygwin. Now the git bash shell works so well, why would I look back? So I skipped learning powershell.

Windows Explorer had to be discarded around 2008 as Microsoft tried to make it into something for the consumer to navigate their media, not understanding that navigating the filesystem and priving a way to see your media are two completely different things. I went to xplorer2, but System Commander was equally good.

The filesystem got a lot worse. The windows folder is at 30GB, with most of the files being duplicates. Microsoft tells us that they are different versions, and are needed to support uninstallation/rollback, but recall that uninstallation is not supported for development environments, and is on a “best-effort” basis.

Windows Networking looks like it has been rebuilt 4 times, keeping all the previous baggage. With each service pack a new technology comes along that *almost* no one wants or ever knows about/uses, and that must be supported ad-infinium, and show up as numerous Windows Services, menu options, Filewall exclusions and registry entries.


As serious alternatives to Microsoft versions have sprouted, I have leaped on them. For databases this has been dbForge, DBeaver. For Visual Studio this has been Jetbrains. Powershell was never a consideration and git bash has been not only the best I could find, but a really good shell. Most other development tools are platform agnostic, but I have a VM on standby for when when it has to be run on Windows.

The breaking points are:

  1. Development environment must be stable
  2. No ads while working
  3. No risk of viral infection
  4. No risk that OS wont come back up after reboot
  5. If I am building apps to run on Windows, don’t try to make money out of my development environment – the OS licensing will make up for it!



I tried the Mac. I was so excited when they went to x86. But it isolates the developer from the OS so completely that I was discouraged. Also on a physical level, my wrists are slack and get cold on the metal south of the keyboard – I’m lame I know. The form factor and weight is great, and pretty much everything will work on this OS now.В  I still use the Mac mini for some things and I have hope that one day it will become my primary OS.

Ubuntu is my alternative of choice, although I would never recommend it. I like regex’s, command line, and file-based configuration, but it’s interoperability is still not there after 2 decades. Almost all servers are running a flavor of linux, and when reproducing a production issue, spinning up a VM is easy. However linux offers lots of native ways to do this quickly with virtualenv, docker or a VM.

(While writing this, Windows just asked me to reboot for a windows update… no kidding..)


There are hundreds of thousands of active developers building for their platform, and together we have made Microsoft number 1, or at least kept it in the top spot. People still update to the latest Windows OS because developers make consumers do it by adopting the latest Windows features and forcing version upgrades, or because the app can only be found on Windows. Why are developers so loyal to Microsoft? Microsoft played about a 50% role in my development carrier, and with age comes conservatism and reluctance to change.


I am motivated by curiosity, innovation and excitement. Microsoft’s betrayal of it’s customers and developers is getting in the way of this and forcing me to seek these thrills elsewhere. Microsoft no longer offers the most compelling products. For .NET there is python. Java can be written anywhere. Jetbrains has great development tools for nodeJS, javascript, HTML and PHP. IDEs like dbForge and DBeaver mean that you can give up the Visual Studio IDEs (even though I am still struggling to find a better SQL query planner than SQL Server).


  1. Push Windows into a VM. The good thing about this approach is that it requires effort to access the VM, so any viable alternative in the native OS will always be tried first.
  2. Spend lots of money on a Apple laptop. Just the huge expense will encourage adoption, which will disentagle me from my M$FT dependence.
  3. Join an open-source community working on Ubuntu desktop features – whatever annoys me most about Ubuntu – redirecting OS frustrations into bug fixes and feature enhancements is a simple way to doubly benefit

December 28, 2017 В· admin В· No Comments
Posted in: Tech

Leave a Reply