Why I Love Powershell

By Xah Lee. Date: . Last updated: .

PowerShell, a better shell, after 30 years of unix crap

Here's reasons why PowerShell is better than bash + unix util bags.

PowerShell has proper command names. Names are full and meaningful. Example:

PowerShell has systematic alias/abbrev and name completion. Completion works for parameter names too. For example: Get-ChildItem has abbrev dir and ls and gci. [see PowerShell: List of Aliases]

PowerShell commands are more general. For example: Get-ChildItem is not just for listing directory, but for listing any list and tree structures. For example, registry, environment variables.

PowerShell has consistent syntax and parameter names and semantic, of their order, position, default values, for ALL commands. Unlike the unix situation with wild optional syntax and semantics. [see Unix Pipe as Functional Language]

PowerShell documentation is superb, well written, consistent format, with plenty code examples. I'd rate PowerShell doc to be one of the best in computing. Of the 10 programing language plus tens of programing tool docs of past 30 years i've read, i'd rank PowerShell's document to be among top 5 best. unix man page is the extreme opposite, ranks the worst. [see Doc by Dummies]

PowerShell has more formalized data types and pipe. It's not just string. PowerShell deal with objects, with full programing language system the dot NET backbone. Numbers, string, and other argument values, expression, all have proper type, and object with methods.

PowerShell is now cross-platform since 2016. Works on linux and macOS too.


Programing Language Design