Every now and then people who want to hire me to train them ask me “why not Windows”. So, here is why.
- your system is not meant for programmers
- installing new software is a pain
- not all software works well (Docker)
- touching internals is tedious, obscured and generally made difficult
- system hides what it’s doing because it is designed so
- you do not have good tools
- you do not have good command line
- you actually have TERRIBLE command line that ANNOYS the hell out of everybody sane
- Name and name and nAmE should be three different things
- GUI is slow when compared to CLI
- setting environmental variable is a 3-minute endeavour (I even timed folks during my trainings)
- GNU/Linux or Macs have CLI as fall-back. If UI changes, CLI commands usually stay the same. Windows users rely on their GUI and if it changes (every major version) they’re lost.
- your system breaks standards (line endings, path separator, etc.)
- Windows IO, permissions and file system (you cannot delete this file, you cannot write to this directory, wait because some program that you think you closed holds this etc.)
- using virtual machines requires coordination between three departments, your own, your security guys and internal IT
- you do not have enough RAM for your system AND virtual machines AND programs that run in them
- I cannot help you with problems cause it’s not my system (it’s been years since I used it or even touched it)
- you will lose time during exercises or you will be unable to do exercises on Windows because of reasons above (or others)
Yes, it’s a domineering desktop choice, with nice GUI, great for gaming, insert your reason here. I get it. But there are reasons why I keep having troubles during EVERY. SINGLE. TRAINING. where people have Windows. So don’t. Please.
And as usual: use what you want. I think those reasons are valid, I want you to use something for technical people… but you don’t have to.