Basically, I've got a job to write code using Node.js, AngularJS, Rails, PHP and so on.<p>However, all their computers have Windows and I'm not comfortable using it to write code.<p>I asked if I could use Linux but they said I can't bring my own laptop, they said I could develop on a VM though.<p>What are the disadvantages of using a VM? I find it disappointing they won't let me install Linux on it.<p>Any workflows I should now when developing on VM?<p>Thanks.
I've worked in VM environments and they are <i>fine</i> for some degraded definition of <i>fine</i>. You can certainly get most everything done with them if thats what you want.<p>I'd argue a little bit that in this day and age, that unless you have some very specific Linux requirements its a valuable career skill to be able to develop on multiple platforms.
My dev enviro is a debian VM that matches our servers with xfce. This on an older Mac via VMware fusion 5. I don't really like OS X so I almost never switch out. Once I full screen the vm I can't tell the difference. Even with videos. (I don't play games so I'm not sure there). I'd say a vm is a perfectly viable option. Plus you'll have the builtin option to hop back to windows and see your work as the unwashed masses will see it in a blink.
You can use cygwin as a shell, then you will mainly be using a text editor, a browser and a shell that is similar to the Unix shell, so it will not be fundamentally different from Linux - from the user point of view.
Vagrant is your friend. I switched from a linux env to my current job which has a MS stack. Took a few months before I fully got my windows env up and running, and in the meantime Vagrant tided me over
Being that VMs usually have terrible disk I/O, I've found that it helps noticably to set the Windows host to increase the amount of memory it uses for the disk cache. There's the setting in 'My Computer" > 'Advanced', plus a little-known registry (or group policy- I don't recall off the top of my head) setting that increases it quite a bit more than the GUI-fied switch. You can find it on Google easily enough.<p>-my 2 cents
Run from such a company. You are just an asset to them that has to obey. You are not doing a nuclear research and there's not a reason for them to force you.