3 ms·
People react to incentives. Windows got PowerShell instead of an improved cmd.exe because improving or fixing existing things does not matter in the yearly prom
by MrBuddyCasino 3y ago
People react to incentives. Windows got PowerShell instead of an improved cmd.exe because improving or fixing existing things does not matter in the yearly promotion package talks, but new stuff does.
- jsnell 3y agoThat's actually a hilarious example (in the "hilariously wrong" sense), because Jeffrey Snover had to accept a demotion to make PowerShell. He was told it was a useless project, not fit for someone at his level to work on, and bumped down a level when he persisted.
- pi-e-sigma 3y agoBut then he got a promotion. So it was a calculated bet that paid off.
- MrBuddyCasino 3y agoInteresting, because a Windows kernel hacker told it differently [0]: These junior developers also have a tendency to make improvements to the system by implementing brand-new features instead of improving old ones. Look at recent Microsoft releases: we don't fix old features, but accrete new ones. New features help much more at review time than improvements to old ones. (That's literally the explanation for PowerShell. Many of us wanted to improve cmd.exe, but couldn't.) [0] https://blog.zorinaq.com/i-contribute-to-the-windows-kernel-we-are-slower-than-other-oper/ https://blog.zorinaq.com/i-contribute-to-the-windows-kernel-...
- jsnell 3y agoHere's a source for my claim: https://news.ycombinator.com/item?id=31302174 https://news.ycombinator.com/item?id=31302174 (I'd heard the story in person from Snover years before that, so it definitely wasn't just sour grapes from somebody about to leave the company.) I can totally believe that MS had a culture where making improvements to cmd.exe was impossible to justify, but that doesn't actually mean that a greenfield project in the same space would be considered promo-worthy either. It seems more likely that everything in that space was viewed as career suicide and you needed to be working on Internet stuff, just like at today's bigco anything except AI will have the same problem.
- aetimmes 3y agocmd.exe is a terminal emulator and PowerShell is a fully-formed scripting language (that Windows desperately needed). This analogy doesn't work the way you think it does.
- dragonwriter 3y ago> cmd.exe is a terminal emulator Isn't Windows Console the (old) terminal emulator, with cmd.exe being just the command-line interpreter.
- jkrejcha 3y agoYeah, conhost.exe is the old terminal emulator effectively (cmd.exe being a shell). Before that, csrss.exe handled terminal emulation (which is why console windows weren't themable[1]). [1]: https://devblogs.microsoft.com/oldnewthing/20071231-00/?p=23983 https://devblogs.microsoft.com/oldnewthing/20071231-00/?p=23...
- pi-e-sigma 3y agocmd.exe can be used with shitload command line utilities and is a full blown scripting language just less powerful than Unix bash. The analogy works just fine.
- waych 3y agoThis is mixing up cmd.exe which is the dos-like (but not dos) scripting interpreter, and conhost.exe which is the actual old terminal emulator/console that the kernel would spin up whenever you ran cmd.exe.
- afavour 3y agoWouldn't it be more likely that maintaining backwards compatibility (an important Windows trait, after all) while also implementing all of Powershell would be a considerably more difficult task than just making a new scripting environment?
- pi-e-sigma 3y agoyes, too much to ask for a multi-trillion company, especially that this company was until recently well known for maintaining crazy level of backward compatibility
- afavour 3y agoBut… this is backwards compatibility. The command prompt is backwards compatible. Sometimes the best way to ensure that is to preserve in amber and replace.