Just a brief (and slightly opinionated) post here, as I was thinking about it this morning:
First off, I have to say that I think “OS Wars” are silly. Use the OS/tools that work best for you. However, I’ve noticed consistently that unless you’re doing .NET, Windows is really subpar for web development, and it’s not that the OS is incapable on any level, but just that most of the tools/frameworks built for web devs are Linux/Mac based.
My question to Windows users: why wouldn’t you just use Vagrant with Meteor and save all the headaches? If I were on Windows, I’d never even bother with any frameworks, task-runners, or packaging tools natively. It would be Vagrant for me 100%.
So I’m genuinely wondering: is it that people don’t know about Vagrant? Is it a lack of Linux experience that puts people off?
Vagrant is annoying to use with Meteor due to some sym-linking issues you run into. If I remember correctly something in the ./meteor folder is symlinking somewhere else which is a big “don’t do that” when you use shared folders in a VM - the filesystem used for sharing does not support symlinks.
You can work around that but it’s a pain in the ass.
The Windows installer for Meteor intentionally doesn’t require admin rights! Most programs on Windows these days don’t require admin access to install.
In any case, running your JavaScript code in admin mode exposes you to all kinds of issues, it’s like running npm as sudo on Mac/Linux, which is basically something you never want to do.
Initially I had asked for a Linux box for a Meteor project I’m working on. I use Vagrant and other VMs w/Meteor, but that’s not the issue. The problem is maintenance and support.
The CTO gave us a Windows server requirement based on our IT department’s expertise. They have to support it. They’re familiar w/Windows Server & IIS and would have to hire a Linux IT person (which may be in the future) for what’s initially a small project.
The experience has not been pretty. We run Space Kitty which means a higher version of node which means meteor build won’t run. Using psexec, I’m doing builds on a dev server vm and robocopying it from there by batch file.
The Windows 10 Anniversary Update announced today may mean that in the not-too distant future, the Windows version of meteor could go away entirely.
TL;DR: Unless you want that 3am call when your VM tanks, Windows users (& their IT) know Windows; if you want a corporate blessing, you have to go w/what’s known (and supported).
I use Windows with WebStorm, Meteor 1.3, React etc and it all seems fine to me. I do use git bash for the more complex git stuff, but apart from that I don’t really hit any roadblocks with Windows at present. Maybe I will once we move onto the devops stuff, but hopefully Galaxy will mean we don’t need to worry about that either.
I’m Meteor 1.3 there is a secret Easter egg - you can actually run android builds on Windows already. Once we fix some other Windows bugs, that is. But that mobile build functionality is not that well tested so we didn’t announce it.