I regularly code on both MacOS and Windows machines and I was always annoyed how different the default experiences are on each. I need to use the same tools and the same experience on both.
Windows “WSL” (Windows Subsystem for Linux) is a great tool for this you can use on Windows 10 and newer. The latest version lets you run a full Ubuntu instance that integrates seamlessly with the underlying windows instance.
By using WSL2 you can have a (mostly) identical developer experience jumping between MacOS and Windows.
Many of the terminal tools that come with unix environments are functionally similar to how they were 20 years ago. But other developer tooling has advanced quite a bit since then.
You can replace tools like
cat with modern equivalents that support full colour, unicode icons, git state and more. Terminal prompts can be made git aware and use colour to indicate state so you don’t have to query git so often.
Keeping developer experience consistent across machines
Keeping any shell changes you make on one machine up to date on all the machines you code on is a nightmare without the right tooling.
This article also explains all the tools I use and how I keep the same terminal setup consistent on MacOS and Windows!