I have been developing code professionally for the last 17 years. Most of these years I used MS Windows because this operating system is mostly used in Israeli Hi-Tech industry. However years spent with Linux were them most productive and fun for me.
So, I decided to write the reasons why not to develop code on Windows. Obviously this is irrelevant for people that develop applications for Windows.
- windows is not free
- you have to install office that is not free too
- shell is owfull
- even linux-like shells (cygwing, gitshell etc) do not work exactly as Linux shells.
- security issues make mad. Often you cannot remove file although you are administrator. For example on Windows 8.1 java method File.canWrite() returns false unless file is under user home although the file is indeed writable.
- Often files remain locked even if process that locked them is killed.
- Back slash as a delimiter instead of forward slash causes lots of mistakes.
- "Program Files" folder is very important. Space in its name causes many bat files that do not wrap each path with quotes to fail.
- Most open source tools are developed and tested on Linux. Even if the tools are cross platform some issues often happen on Windows only.
- It is not Linux