Perfect Dev Environment on Windows, the easiest way

Windows is not much appreciated as a developer friendly platform. Any discussion regarding usability of Windows as a developer platform with people in tech generally comes to the conclusion that you should ditch it completely in favour of macOS or Linux.

Having used all three of the Operating Systems extensively, I know that macOS and Linux are subjectively better for use out of the box for a developer but Windows is not as bad.

Here’s a guide which can help you setup the perfect dev environment for most technologies making your experience at-par (or probably better if you like Powershell) with macOS and Linux.

Install Scoop

Traditionally you need to install softwares needed for development manually on Windows. That involves searching, downloading installer, installing, possibly setting PATH and other environment variables. Scoop is the utitlity that let’s you get rid of all this. Scoop is package manager equivalent to brew in macOS and apt/dnf/pacman in Linux based distros .While there are many other package managers for Windows like Chocolatey, OneGet, Ninite, Windows Remix in the market, I particularly find Scoop the easiest to use.

You can find all command line utilities as well GUI programs easily in Scoop.

To install Scoop, open a Powershell 3 Window (non-admin) and run the following commands. Refer here as well.

After successful install, install the following packages in order.

Install Cmder

Cmder is a better console app for Windows. It is equivalent to Terminator/iTerm on Linux/macOS that people prefer generally over the default terminal app in the respective operating systems.

Configure cmder

cmder has a lot of configuration options in the preferences. The one which I would highly recommend are the following.

Set Powershell as default

Select Powershell from the menu

Move tab-bar to top

This is a slightly personal preference but I find it more convenient.

Uncheck Tabs on Bottom

You may continue further commands on either cmder or Powershell

Install a better monospace font for Console

You probably need a font better than the default on Windows for some symbols to show up. Go to Nerd Fonts Repository and download a good powerline patched font. My personal preference is Meslo Nerd Font. Install it as per the instruction in the Repository Readme.MD

Select it from cmder

Select the font

Install Git

Git is the currently most used version control system. You might not need it but is needed for Scoop extras, so you must follow this step.

Add Scoop versions and extras buckets

Scoop has some useful packages listed in extras bucket. There is also a versions bucket just in case you need old versions of some software like Python 2.7

Install all the other software that you need.

NodeJS Yarn

Python

Java/ JDK

IDEs / Editors

For Jetbrains IDEs, I will recommend using Jetbrains Toolbox than Scoop. Though Scoop installs them well, Jetbrains Toolbox gives you more options like installing EAP version.

Android Development

Though Scoop also has installers for Android Studio, I will recommend using the default installer available here since Scoop updates can interfere with native Android Studio updates.

Zap up the shell

The cmder has pretty great default setup, I will recommend installing following packages for improving it even further.

Here are the links to the used modules if you want to know about specific tweaking/ theming.

Posh-Git: https://github.com/dahlbyk/posh-git

Oh-my-posh: https://github.com/JanDeDobbeleer/oh-my-posh

This is the final result.

Install other useful command line tools

There are some other popular unix tools that you can install directly with Scoop. Here’s a list of what I use.

  • vim: powerfull command line text editor
  • wget: utility to download files using command line
  • gcc: GNU C Compiler.
  • clang: Clang C Compiler
  • aria2: powerfull multithread download manager on terminal
  • openssh: Windows native ssh client

If you use any other tools, there are high chances it is already there in Scoop. If not you can submit a pull request here to add the package.

Updating packages

Quite easy.

Possibly this is all you need to setup for development environment on Windows without the pain of managing by yourself.

I hope this article helped you. If you have some more tips I can add in my article, do mention as a comment 😃