While working on web projects for small and big companies there is one thing that really grinds my gears. Almost all developers at these companies are forced to use Microsoft Windows for webdevelopment. I do not want to start a discussion about which os is best but there are very good reasons NOT to use Windows for WEBdevelopment.
1. Directory separators
Windows is the only system that uses a backslash (“\”) as directory separator. This could get you into trouble when you have hardcorded directorypaths inside your Gruntfile, Gulpfile or any other configuration file or script.
2. Development Environment
Did you ever try to get nodeJS running properly on windows? Almost all node modules are made for a unix environment. It will constantly complain about some dll or library missing and then you have to install Microsoft Visual Studio or some other huge package just to get one module running.
Same goes for webservers. You can get apache and mysql running on windows and there are even toolsets for it like XAMPP but it will never be as smooth as on a unix system.
3. Production Environment
Your code will almost certainly run on a unix machine in production. So why bother with developing on a different system and giving more room for errors by doing so?
4. Tools & Utilites (Git, NodeJS, etc.)
Just compare the process to install git on unix system and on windows.
- Download the installer
- Run through the installer
- Cross your fingers
Mac OS X
apt-get install gitor
yum install git
5. The terminal (cmd or powershell) is crap
Well – it just is. You can’t even resize it properly. As a sophisticated developer you just need a good terminal emulator. Of course you could install tools like cygwin or powercmd but thats just a glass of water for someone sitting in hell. Why try to emulate unix? Just go for the real deal.
6. The file system
Windows uses NTFS which does not have the options concerning access rights which unix or mac filesystems provide. Allthough Windows NTFS is case-sensitive not every windows application can handle having files like “example.txt” and “Example.txt” in one directory. This and many other small differences can get you into trouble while developing and it’s another gap to your production system, which will almost certainly be a unix server.
While a pain in the ass at first, vim will be one of your favourite editors after a while. It does not bring many features with it, but you can bet that there is a plugin ready for EVERYTHING. Combine vim with tmux and you have a superb IDE at your fingertips:
Oh. Not available for windows. Sorry.
8. – This guy.