5 ms·
How is that comment useful? No-one is denying anything. It's obvious that the decision to implement those aliases was incorrect. It's not like Microsoft is sayi
by kyberias 10y ago
How is that comment useful? No-one is denying anything. It's obvious that the decision to implement those aliases was incorrect. It's not like Microsoft is saying that it was correct.
It's not a question of who was right or who to blame. It's a question of how to make the changes because there _are_ users that depend on those aliases.
- emodendroket 10y agoThey are also honestly pretty useful as a new user. `ls` and `dir` are more obvious things to try than `Get-ChildItem`.
- kuschku 10y agoThen maybe design new ones? "download" aka "dl" instead of curl/wget? "list" instead of ls/dir? Would also make them easier googleable
- FLGMwt 10y agoPowerShell has other ones in addition to the cannibalistic ones. `Get-ChildItem` has `gci` and the command in question, `Invoke-WebRequest` has `iwr` on top of `wget` and `curl`. Admittedly, it's pretty kitchen sinky.
- kuschku 10y agoSo, there’s already a solution.
- emodendroket 10y agoThose are not discoverable in the same way.
- Eyas 10y agoThat's not the problem MS was trying to fix with the Linux aliases -- the problem they were trying to fix was ergonomics. A lot of us are used to Linux commands and are turned off by Windows shells when we have to learn a new set of commands and can't use `ls`. In fact, being able to do `ls` rather than `dir` on PowerShell was one big reason I gave it a chance. My other Windows shell experiences have been supremely intolerable because of that. With curl and wget, Microsoft admits they were overeager.
- kstrauser 10y agoI think the correct ergonomics would be if you saw: $ curl http://example.com/foo Fetching http://example.com/foo by emulating curl This command is an alias for "...". If you've installed a real curl command, disable this by typing... so that you could still use muscle memory to type the commands you know, could see what the actual underlying command is so you could adapt to it, and would know how to use the Real Thing if you have it.
- emodendroket 10y agoKind of noisy, isn't it?
- kstrauser 10y agoIt is, but the noise is telling you how it differs from what you'd normally expect and how to address it. I think that's an acceptable tradeoff.
- emodendroket 10y agoI think it is immediately obvious from the output that it's not the same program, without the message.
- kstrauser 10y agoReally? What's the normal output? The content of the URL being fetched. If that message was to STDERR so that curl > foo worked without alteration but the help text still showed up on the console, I think fewer people would be surprised. The number of bugs about this indicates that people are still being surprised.
- Spivak 10y agoThe half-way solution could have been making the 'aliases' output migration documentation about how to accomplish common takes with the PS commands. That way PS would be far more discoverable to a UNIX person and would save time searching "$command in powershell".
- emodendroket 10y agoYeah but frankly it also sucks to type in such a long command rather than using the aliases.
- contextfree 10y agoMost of the commands have PS "native" aliases which also follow a more consistent pattern, e.g., get-childitem->gci, invoke-webrequest->iwr.
- emodendroket 10y agoThat's true, but after years of typing "ls" into terminals that's just more natural.