What Microsoft Can Do to Make Me Hate Windows a Little Less
Those who know me know that I have little love for Microsoft Windows. The platform is a special snowflake, and coming from a Unix background (real UNIX, not Linux, btw), every time I'm faced with Windows I feel like I'm in some alternate dimension where everything is a little strange and painful.
I have to deal with Windows because of applications. My wife runs Quickbooks (which is one of the more chaotic and poorly designed bits of software I've run across), the kids have video games they like. I've had to run it myself historically because some expense report site back at former employer AMD was only compatible with IE. I also have a flight simulator for RC aircraft that only works in Windows (better to practice on the sim, no glue needed when you crash, just hit the reset button.)
All of those are merely annoyances, and I keep Windows around on one of my computers for this reason. It's not one I use primarily, nor one I carry with me when I travel.
But I also have created and support software that runs on Windows, or that people want to use on Windows. Software like nanomsg, mangos, tcell, etc. This is stuff that supports other developers. Its free and open software, and I make no money from any of it.
Supporting that software is a pain on Windows, largely due to the fact that I don't have a Windows license to run Windows in a VM. The only reason I'd buy such a license for my development laptop would be to support my free software development efforts. Which would actually help and benefit the Windows ecosystem.
I rely on AppVeyor (which is an excellent service btw) to help me overcome my lack of a Windows instance on my development system. This has allowed me to support some things pretty well, but the lack of an interactive command line means that some experiments are nigh impossible for me to try; others make me wait for the CI to build and test this, which takes a while. Leading to lost time during the development cycle, all of which make me loathe working on the platform even more.
Microsoft can fix this. In their latest "incarnation", they are claiming to be open source friendly, and they've even made big strides here in supporting open source developers. Visual Studio is free (as in beer). Their latest code editor is even open source. The .Net framework itself is open source.
But the biggest barrier is the license for the platform itself. I'm simply not going to run Windows on the bare metal -- I'm a Mac/UNIX guy and that is not going to change. But I can and would be happier to occasionally run Windows to better support that platform in a VM, just like I do for illumos or Linux or FreeBSD.
So, Microsoft, here's your chance to make me hate your platform a little less. Give open source developers access to free Windows licenses; to avoid cannibalizing your business you could have license terms that only allow these free licenses to be used when Windows is run in a virtual machine for non-commercial purposes. This is a small thing you could do, to extend your reach to a set of developers who've mostly abandoned you.
(And Apple, there's a similar lesson there for you. I'm a devoted MacOS X fan, but imagine how much wider your developer audience could be if you let people run MacOS X in a VM for non-commercial use?)
In the meantime, if you use software I develop, please don't be surprised if you find that I treat Windows as a distinctly second class citizen. After all, its no worse than how Microsoft has treated me as an open source developer.
I have to deal with Windows because of applications. My wife runs Quickbooks (which is one of the more chaotic and poorly designed bits of software I've run across), the kids have video games they like. I've had to run it myself historically because some expense report site back at former employer AMD was only compatible with IE. I also have a flight simulator for RC aircraft that only works in Windows (better to practice on the sim, no glue needed when you crash, just hit the reset button.)
All of those are merely annoyances, and I keep Windows around on one of my computers for this reason. It's not one I use primarily, nor one I carry with me when I travel.
But I also have created and support software that runs on Windows, or that people want to use on Windows. Software like nanomsg, mangos, tcell, etc. This is stuff that supports other developers. Its free and open software, and I make no money from any of it.
Supporting that software is a pain on Windows, largely due to the fact that I don't have a Windows license to run Windows in a VM. The only reason I'd buy such a license for my development laptop would be to support my free software development efforts. Which would actually help and benefit the Windows ecosystem.
I rely on AppVeyor (which is an excellent service btw) to help me overcome my lack of a Windows instance on my development system. This has allowed me to support some things pretty well, but the lack of an interactive command line means that some experiments are nigh impossible for me to try; others make me wait for the CI to build and test this, which takes a while. Leading to lost time during the development cycle, all of which make me loathe working on the platform even more.
Microsoft can fix this. In their latest "incarnation", they are claiming to be open source friendly, and they've even made big strides here in supporting open source developers. Visual Studio is free (as in beer). Their latest code editor is even open source. The .Net framework itself is open source.
But the biggest barrier is the license for the platform itself. I'm simply not going to run Windows on the bare metal -- I'm a Mac/UNIX guy and that is not going to change. But I can and would be happier to occasionally run Windows to better support that platform in a VM, just like I do for illumos or Linux or FreeBSD.
So, Microsoft, here's your chance to make me hate your platform a little less. Give open source developers access to free Windows licenses; to avoid cannibalizing your business you could have license terms that only allow these free licenses to be used when Windows is run in a virtual machine for non-commercial purposes. This is a small thing you could do, to extend your reach to a set of developers who've mostly abandoned you.
(And Apple, there's a similar lesson there for you. I'm a devoted MacOS X fan, but imagine how much wider your developer audience could be if you let people run MacOS X in a VM for non-commercial use?)
In the meantime, if you use software I develop, please don't be surprised if you find that I treat Windows as a distinctly second class citizen. After all, its no worse than how Microsoft has treated me as an open source developer.
Comments
you can legally download a VM with Windows 7 from MS for IE11 testing (you can basically install/test anything on the VM). The VM is valid for about 3 months: https://dev.windows.com/en-us/microsoft-edge/tools/vms/mac/
The three month expiration is onerous for a development environment. Having to reinstall all your tools etc every three months sucks.
This was a token effort by MS to assist web developers in making sure their sites work with IE. It isn't a real developer environment.
Agree about the reinstall the world every 3 months. What you can do is to download the VS 2015 iso image (1 download) and use this to install the dev tools every 3 months. Not sure, but I think if you keep a copy of the original VM you can start to use it after 3 months (if I'm right you will only need to download this once).
Obviously, MS intended this for web development, but it can be used for general development as long as you have a quick way to install the dev tools, like some scripts that install what you need. Not ideal ...
* You can also download the Windows Enterprise Evaluation Edition, which is another way to get a free 3-month activation.
* You can sign up for Azure and run a Windows VM there. The $200 introductory credit lasts a long time if you only use the VM occasionally.
* If you happen to be a student, you can sign up for DreamSpark, which gives lots of free MS licensing, Azure credits, etc.
* If you happen to be associated with a startup, you can sign up for BizSpark, which also gives you lots of free MS licensing, Azure credits, etc.
* If you have an email address and a credit card, you can sign up for Amazon Web Services and run a "micro" Windows instance under the free tier for a year, and cheaply thereafter.