A few days ago, I woke up in the morning and turned on my primary work laptop. It is a Microsoft Surface Book (an awesome machine). The night before, there was a Windows Update (cue sound of impending doom). I entered “cmd” in the Run dialog. I have done this literally tens of thousands of times over the past more-years-than-I-care-to-remember.
And instead of seeing the familiar cmd shell I saw a slightly different version. What. The. Heck.
The Windows 11 Update had replaced the good old CMD shell with a new Terminal application. After a couple of minutes of fiddling around with Terminal, it became clear that Terminal is just a GUI container for multiple shells including the CMD shell and PowerShell, and tweaked versions such as Developer PowerShell for VS 2022.
But I don’t get it. Why do I need my shells combined into a GUI container?
I immediately set out to determine how to launch the old, familiar CMD shell. After a bit of Googling about, I discovered that the old CMD shell is actually the conhost.exe (console host) application and the old cmd.exe just redirected to conhost.exe. In short, I just need to enter conhost.exe in the Run dialog.
After some experimentation, I still don’t understand the purpose of the new Terminal program. I regularly use the CMD shell on Windows and the bash shell on Linux systems. And I even worked on the original PowerShell, when it’s code-name was Monad. My point is, I understand working with shells but I don’t see the advantage of placing multiple shells in a GUI container. I wear big boy developer pants and can manage multiple shells.
I hope there will be some big advantage to Terminal that I just don’t see yet, as opposed to Terminal being a Windows feature that nobody asked for. I assume there are behind-the-scenes improvements in performance and possibly security, but even so, that doesn’t explain the need for Terminal.
Note: After the same Windows update that gave me the Terminal app, my beloved laptop started acting wonky in the sense that some (but not all) of my PyTorch programs starting running slightly differently. I spent hours trying to track the problem down and still haven’t figured out the source of the new behavior. I even rolled back the update but the strange behavior continued. Grrr.
Sometimes I understand software system design choices, and sometimes I don’t. Fashion design choices are more subjective. I kind of like these three designs even though they’re clearly not functional.