Introduction
Thinking of doing development on Windows? This is a short guide on what I think is the best way for setting up a development environment on Windows. My main development experience is with Python and NodeJS so take that into account while reading.
Before I begin, I would advise on looking at other alternatives if your circumstance falls into the following as it will save you a lot of headaches trying to make things work:
- you work with Google Cloud or AWS (not too sure about Azure)
- your production environment is not Windows
- your dev colleagues are using Linux or MacOS
- your production stack have components that are not compatible with Windows
Other alternatives includes:
- developing on Windows subsystem for Linux
- developing with a Docker container
- developing on a Linux or MacOS machine
- use a Linux distribution on VirtualBox
PS: I highly recommend Pop OS (linux dist) for development.
Setting up TL:DR
- make sure your username has no space (ie. your personal folder in the Users folder does not have space)
- when creating folders and files, do not use space for their names
- use Scoop as your package manager in installing development related tools
- thats it folks!
Make sure your username does not include space
If you did, create another user for yourself and log into that account for development. An offshoot of this is to try not to create folders and files with spaces in their names.
The main reason to do the above is to prevent beforehand bugs arising from installing/using various libraries of your language of choice. There are 2 types of file paths: Windows and everything else. While this isn't an issue most of the time, extra care needs to be taken if you are writing cross platform code. Some libraries unfortunately did not take this extra care so the best way forward is to adapt a defensive strategy and just don't use spaces while creating path names.
Use Scoop as much as possible to install your development dependencies
Scoop is a command line installer that makes managing development dependencies a breeze. If your requirements has a portable version, Scoop probably can install it.
For developers that somehow needs to work on a locked down pc, Scoop does not need admin privileges to install.
Other features includes:
- easier dependencies management due to all programs being installed in one location
- easy version management for programming languages. Switching is just a command away
- searching, installing, uninstalling or querying installed programs can all be done in the command line
To learn more about Scoop, visit https://github.com/lukesampson/scoop/wiki