Jeffrey Snover and the Making of PowerShell
Origins and design goals
- PowerShell was created to make Windows server administration automatable in an environment where configuration is API‑driven, not file‑based.
- It drew inspiration from Korn shell, Perl, VMS DCL, and C#, with a focus on structured data, not text.
- Internally it faced strong resistance, demotions, and politics between Windows, .NET, and DevDiv teams.
Current state and Microsoft investment
- Several commenters feel PowerShell is no longer a priority at Microsoft, citing stalled features, deprecated modules (Azure/O365), and incomplete Graph API replacements.
- There are regressions and incompatibilities between Windows PowerShell 5.1 and modern PowerShell (7+). Some features vanished due to internal API/metadata fights.
- WinGet’s PowerShell integration exists but is considered awkward and poorly designed by some.
Strengths frequently praised
- Pipelines of typed objects instead of text; easy property access and conversion (CSV/JSON/XML).
- Rich, self‑describing cmdlets with consistent parameter parsing, auto‑completion, and “WhatIf/Confirm” simulation modes.
- Tight integration with Windows/.NET/COM and especially Azure; many Azure resources have strong PowerShell support.
- Good cross‑platform story (Windows, macOS, Linux) for some admins; useful REPL with introspection and aliases familiar to Unix users.
Pain points and design criticisms
- Verb‑Noun naming and verbose syntax; awkward interactive use compared to terse Unix shells.
- Surprising behaviors: automatic array flattening, difficulty piping raw bytes, quoting/escaping issues, single‑element arrays becoming scalars.
- Backward incompatibilities, execution policies, and constrained language mode cause deployment headaches.
- Interop with legacy Windows tools (batch files) and external commands can be brittle.
- Some modules (networking, Graph/Azure coverage, Winget) are incomplete or poorly aligned with PowerShell idioms.
Comparisons and alternatives
- Many prefer Bash or other *sh for quick, text‑glue tasks and ubiquity, despite its own pitfalls; others find Bash unmaintainable beyond small scripts.
- Several have moved to Python for cloud/APIs and data work, treating PowerShell mainly as Windows glue.
- Some use PowerShell happily as primary shell on non‑Windows; others find it powerful but too complex to “stick.”
- Nushell is mentioned as an object‑pipeline shell influenced by PowerShell but less powerful; C# scripting and other REPLs appeal to some instead.
Other themes
- Desire for first‑party GUI, charting, and data‑science‑friendly cmdlets to make PowerShell a better tool for business analysts.
- Mixed experiences with Azure CLI vs Az PowerShell; REST APIs exist but are seen as under‑documented.
- Multiple comments praise the interview itself but find the auto‑generated transcript hard to read.