Microsoft has done great efforts to improve the user experience and build an active ecosystem for developers. Moreover, Microsoft has completely embraced open source in recent years, there are so many awesome open-source projects developed by Microsoft.
After 8 years of daily work on a Mac, I recently moved to Windows 10. My previous impression was that Windows is not developer-friendly and efficiently compared with Mac.
But my latest result is that I don’t miss my Mac, I may get some shiny development experience on Windows 10. Within two weeks of exploration, I found the following 5 tools can greatly improve my productivity.
PowerToy is a set of utilities for power users to tune and streamline their Windows experience for greater productivity, it’s open-source! There is a total of 8 small utilities in PowerToy, explore them by yourself!
To improve productivity, I suggest these two ones:
PowerToy run is a similar tool as Alfred or Spotlight on Mac, with a simple Alt+Space, it helps you search any applications, processes, files, URLs, etc. Anything you can imagine. It runs a simple calculation if you like:
Alt + Num (1, 2, 3, etc) will maximize or minimize the active window according to the inputted number.
Keyboard Manager is a tool for remapping keys. As an Emacs user, I need to swap Caps Lock with Ctrl, because Ctrl is used more frequently and Caps Lock is located at a more proper position on Keyboard.
You could also do key remap in some specific applications, but remember it will only accept process-names not application names, so for Microsoft Edge that would be “msedge” but not Microsoft Edge. To get the process-names, you may use the command tasklist and Select-String for pattern matching in Powershell:
As a developer, we need to run some Linux shell commands for daily work. On Mac, we have a Unix-like shell which is enough for daily usage.
On Windows, WSL is a game changer! Forget those Mac and Linux nuances, we need a pure Linux Kernel and Shell.
WSL stands for Windows Subsystem for Linux. WSL2 is the latest version and has a better performance. We could even run docker in it.
There are very detailed tutorials on the official documentation page. Precompiled Linux distributions including Ubuntu, Debian, and Kali. If we want to run a Linux GUI application, config it with X-Server, and everything goes well.
Use the path \\wsl$\Ubuntu to access the files in Linux.
The new Windows Terminal is another gift, it has a fancy UI and awesome performance. We could use it to create PowerShell, Command Prompt, and Linux in WSL!
Great performance comes from a GPU accelerated text rendering engine. From my actual experience, it’s almost 2X faster than Iterm2 on Mac.
Even more, we can display almost anything we want there, icons or emojis.
Visual Studio Code with Remote WSL
VS Code has tons of excellent plugins, it’s could be configured into a powerful IDE for most programming languages. With the plugin of Remote-WSL, we could edit the files in Linux, so we get all the productivity of Windows while developing with Linux-based tools, runtimes, and utilities.
Edit source code in the editor window, and run or compile it in the embedded Shell Terminal. This is almost the same user experience as Emacs, I can not want anything more!
When I begin programming, Dash is the tool I’m missing. Luckily, we have an alternative tool on Windows.
Zeal is an offline documentation browser for software developers and combined with 200+ docsets. Actually, most of them come from Dash.
With these powerful tools, we will get a lightweight, mixed, programming environment. If you don’t have to develop Mac/iPhone applications, Windows 10 will be the right choice.
Hope you enjoy it, and happy coding on Windows!