Hacker News new | ask | show | jobs
by Someone1234 1649 days ago
It is a complete re-imagining of what a shell scripting language is. Hardly surprising that it isn't backwards compatible or requires that you have to learn it.

People feel inconvenienced, which I get, but I feel like people don't give it enough credit for just how well-thought-out the design actually is.

Once you grasp it (which is admittedly easier if you know a Java-like language) your productivity skyrockets as commands are largely guessable and results are largely self-documenting. They have man-pages/get-help, but when an object is self-describing you don't need them as often.

The thing that disappoints me is that nobody from the *NIX world has tried to bring the same ideas there. They're good ideas.

2 comments

> It is a complete re-imagining of what a shell scripting language is. Hardly surprising that it isn't backwards compatible

By why does having richer return types necessarily mean you need to deviate from most other languages for the escape character (backtick in Powershell, but usually backslash)? That doesn't seem related, and it greatly impacts the initial impressions people get.

> The thing that disappoints me is that nobody from the *NIX world has tried to bring the same ideas there. They're good ideas.

I agree, and I hope someone does. But if they do, I hope they just focus on the ideas, and leave out the small and unimportant incompatibilities powershell decided to add.

PowerShell was developed on Windows which uses '\' as the path separator by default. Using it as an escape character would be kind of confusing.
NuShell and Elvish are trying to bring in some of the same ideas.
Honestly I don't see that going anywhere. It was said somewhere upthread that the real value of PS was in the Microsoft management modules, and I'd add the .NET library to that. If you're developing from scratch anything a script might want to use, your battle is going to be pretty uphill.
Unfortunately I have to agree. Current efforts are constrained by the desire to integrate with existing tooling and the text-parser-based approach of the unix interfaces in general (in particular sysfs and procfs on Linux).

I honestly think someone should do this "from scratch", as you say. I believe the effort would be worth it, but I doubt that the unix community would be amenable to the idea as it goes against their deeply held cultural traditions.