Hacker News new | ask | show | jobs
by wtallis 16 days ago
PowerShell has always struck me as being fine for scripting (especially since the OS ships with an editor with autocomplete), but absolutely insane for everyday interactive use, especially given how many places Microsoft applied their usual tactic of making their clone of an existing thing arbitrarily different. The design was clearly heavily informed by Unix shells, but it's like they were operating under a mandate to apply the principle of maximum surprise. Stuff like the default tab completion behavior very obviously interacts badly with the extreme verbosity.
1 comments

The most useful thing I did when I started working with powershell as my daily shell was to _remove half the default aliases_

once I broke my muscle-memory by trying to treat it as a historic shell, it became far more usable. Yes, get-childitem is a little weird to remember, but once you realize what it's doing isn't what `ls` does, you get a far better grasp on the environment.

Write some cmdlets. You'll discover how useful having a sane, object-oriented shell is.

> Yes, get-childitem is a little weird to remember,

That's not the problem. The problem is that it's way too much typing, and with the default tab completion behavior it's often way too much backspacing if I didn't get what I want. A good command-line shell designed for interactive use should be terse enough that it's clearly faster than using a GUI. And the OS should ship with such a shell out of the box; building your own on top of a weird scripting language is silly and not at all the same thing as the OS having a reasonable shell built-in. (Most of the value in PowerShell comes from having it installed by default on all Windows systems, and it's sad that Microsoft decided to just freeze it at 5.1.)