| I'm predominantly a Ubuntu / Mac user (roughly 60/40). My Windows machine has seen an uptick in use over the last months for development purposes, but it's still stuck on Windows 10. I don't think I need or want to upgrade it. Two questions: - Do I need to upgrade it? - How do I get comfortable with Windows shell? PowerShell doesn't do Unixisms. There are too many shells. Command Prompt / CMD, PowerShell, there's some utility that installed mingw64 terminal, and WSL is also a thing. Which one(s) should I use? I'll expand on my shell question: The thing I'm struggling with now is that when I install utilities like git, cargo, etc., they seem to work for some shells but not others. They seem disconnected and not have the same access, visibility, and privileges. What can I read or do to get me over this hill? Which one(s) should I use? (I assume "CMD" is dead?) I'm doing mostly Rust / TypeScript development on Windows, FWIW. |
The first rule of PowerShell is to install the "real" PowerShell [1] instead of using the one bundled with Windows (which is out of date and importantly doesn't interoperate as well with non-PowerShell commands). I still don't like it, it's way too different from UNIX shells, but at least it's usable.
CMD hasn't gotten any improvements since like 1995 but it isn't going anywhere either. If you need something vaguely like a UNIX shell and that's always available, it's not a bad choice.
WSL2 is fine if you work mostly within its environment, which is made easier by things like VSCode's Remote extension. However, accessing Windows files from within WSL2 is surprisingly slow, so you really want to commit to it if you start using it.
I'm doing Rust on Windows too and apart from installing the MSVC tools and a compatible version of libclang, and occasionally figuring out how to write PowerShell, it's not been too much trouble. WinGet is pretty good and the library has quite a large selection of development tools.
[1]: https://learn.microsoft.com/en-us/powershell/scripting/insta...