Windows is the most popular desktop & laptop OS, love it or hate it, lots of programmers run this OS.
The reasons may be various, but I like to think that many use it because it just works very well for a lot of stuff - including programming.
Ok, another reason that matters to many. For some time Mac computers didn't have a real competitor design-wise. I think now, they do.
I mean just take a look at the new 2020 Dell XPS 13 - that thing is gorgeous.
While I don't want to raise a battle on Windows vs Linux vs Mac, I want to state that I've tried all 3, and I like them all for what they do best. Windows is a very good all-around operating system that also has its quirks, so I want to share what you can do to make your developer experience as good as possible on this OS.ย
Chocolatey ๐ซ or Winget
The Package Manager for Windows - this tool, once installed, can do things like:
choco install nodejs
choco install vscode
choco install firefox
Amazing right? You can have a script with everything you need to install on a new machine - making the setup process really easy. Also - they have a cool website where you can search packages and see what other nice things choco
does (besides getting some nice dopamine in your brain).
As of 2023, it's probably better to use winget
instead of choco
, check it out here and read more about it on learn.microsoft.com.
Alternatively, you could also check out Scoop.
Cmder ๐ป
Cmder is a console emulator - allowing you to have a multi-tab console for Windows - supporting cmd, Powershell & bash. It has lots of customization features - like choosing a background, the font-size, aliases, and other nice features. Also has good keyboard shortcuts out of the box.
By the way, you can also map your VS Code terminal to be Cmder.
Some alternatives:
I'd say give all a shot and pick the one you like the most.
Wox ๐
Wox - I really enjoy using this tool as a Spotlight alternative for Windows. Need to quickly find an app, run something from a command line, calculate something, or search something on google? Wox can do all those things for you - FAST!
Code editors
Take your pick, the best of the best run on Windows of course:
- VSCode
- Webstorm
- Atom
- Sublime text
Develop as on a Linux box with WSL2 ๐ง
Of course, spinning up a Linux VM is pretty easy on Windows with Hyper-V, but why bother when you can get this natively? You just need to turn on WSL from the Windows features section, and then you can code using Linux-first languages like Ruby or Python in the environment they were designed to run.
A gotcha when running things in WSL2 is using /mnt/c
that will make your dev experience really slow. You should not use the Windows drives for WSL2 development, but the actual WSL2 drive, for example:
/home/{username}/projects
Extra steps to make the OS faster
- Uninstall any bloatware
-
Prevent Windows Security dev folders scanning (if you are sure you are using only trusted secure software - beware that some hacked
npm packages
have exploited Windows machines in the past) - Turn off Windows search indexing - since you are using Wox, you don't need it
Conclusions
Do you need a Mac to code?
Absolutely not. Unless you are doing some OSX/iOS development, you definitely don't need a Mac. Pretty much everything you can do on a Mac is possible on a Windows PC as well.
Leave a ๐งก & ๐ฆ if you like this article, also check out my Twitter where I post more cool content.
Top comments (27)
Thanks for sharing this ๐ Allow me to add to this compilation:
1) Microsoft PowerToys github.com/microsoft/PowerToys a bundle of tools,one uses wox under the hood and other tools for productivity like color picker, image resize, bulk file rename, window layout arrange on your screen and a couple more feats. You can disable the tools you don't want to use.
2) Another terminal alternative I used for a while is github.com/Eugeny/terminus (it is an elecron app like Hyper, with some more features). Lately I've been just using Windows Terminal because it's as simple as I need it to be and lighter on resource usage (not an electron app), which improves battery perfomance if you're on a laptop.
Cheers ๐
Great additions, thanks!
If you're looking for Windows-compatible CLI alternatives to popular *nix tools, I have a list I try to keep updated as I find stuff:
git.fromouter.space/Hamcha/stuff/s...
Cool!
I remember trying WSL on my Win 10 (16299) and it being an absolute nightmare to make some things work. I ended up using homestead and, later on, a VM running Ubuntu. (Sloower, but no compatibility issues.)
People say WSL2 is better, but I have to update my OS, and I worked in IT for 20+ years. Believe me when I say that OS upgrades in Windows are a Pandora's box. If you have a version that works, stay on it as long as you can.
On the other hand, I just got a new laptop with the latest W10 pre-installed, so I might give it another try... I will definitely not waste a day or two in reinstalling my main machine just to try WSL2.
I definitely will take a look at Cmder and Wox, which I didn't know. Thanks for the tip!!!
Not me. For some things WSL2 is better than WSL1, but for a lot of things it is worse.
WSL2 is very different from WSL, WSL they try to emulate linux. WSL2 is a proper linux system running in a container.
I made the transition from macOS and Apple Wall Garden when Surface Pro 4 came out, as I became more fond of highly portable, multi-purpose form factor of Surface Pro devices. Naturally, I tried A LOT to get fedora - my GNU/Linux distro of choice - to run on SP4 but in early days of SP4 almost nothing worked. Although I tried fedora on SP4 again with fedora 32, and it covered almost everything about it, except for touch and pen input. That had left me little more lean towards focusing on making Windows my perfect dev OS and eventually I found that Windows 10 is really making the promises it claimed, especially with first-level support for node, python, docker, and later WSL2 which brought even better DX for docker and cross-platform development and testing.
I have a weaker windows 10 laptop I got from a friend. I started setting up some development environment stuff in it for this specific reason. I'm going to probably take some of these tips and check em out.
I'm planning on building a new computer (primarily for gaming), and it was going to dual boot with Linux. However if I can get the windows development side to work well enough, I might focus on dual booting later.
Thank you for introducing Wox to me as well. Turning off Windows Indexing improved the system speed. I use and love Cmder for many years, the speed is getting better with each update. For VScode Integrated Terminal I just use the bash from cmder. What are the advantages of using cmder instead?
Thanks for the nice article, Cmder is also my go-to terminal for many years and I currently integrate it within windows terminal, functionality is similar but I do like the looks/configurations on windows terminal more lol.
As WSL2 when using Docker desktop with wsl2 backend is so much better than hyper-v especially the startup time and we are also able to access docker directly from both wsl or host machine. The only thing I don't like about windows is that some libs/tools is not available, like jsonnet.
Thank you for talking about Cmder !
It has been my go-to console on Windows for a while and I don't plan on changing any time soon !
I have an interesting alternative to Wox, Microsoft's PowerToys Run !
It's included in Power Toys, an open-source utilities bundle.
Power Toys is available on Chocolatey to make easy to install/update.
It comes with other cool stuff, such as a Keyboard Manager and File Explorer add-ons !
EDIT: Turns out PowerToys is partly based on Wox...
The more you know !
thanks for sharing, will check them out!
I'm a Windows fan with one exception, they fractured their dev environment so badly I refuse to take Wpf or Winforms jobs any longer. It's pretty sad that developing desktop apps is such a fail now. Funny but maybe Electron is the answer. I know we can do Win32 stuff in C++ but some of us can't stand C++.
Hi Alex, thank you for your post.
I would like to know what tool you use to make those keyboard shortcuts you type to show up on your screen?
Not sure, I took the Gif from the Wox GitHub repo:
github.com/Wox-launcher/Wox
Okay. Thanks for your post anyways!!
It looks like it is Carnac