>To be honest, I don't see how this dscussion about how many people might depend on these aliases is relevant. The story as I see it is that a few years ago you decided to usurp the names of some well known tools, in the full knowledge that doing so would break those tools. You have then ignored bug reports about this for years. You really can't deny that you knew a long time ago that what you did amounted to hostile behaviour towards other people.
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.
That way PS would be far more discoverable to a UNIX person and would save time searching "$command in powershell".
"download" aka "dl" instead of curl/wget?
"list" instead of ls/dir?
Would also make them easier googleable
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.
$ 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.The number of bugs about this indicates that people are still being surprised.
> If removing these aliases (retroactively, if you want to clean up your act you have to remove this from all versions in which this was ever released) breaks things for some people, then you can go and send people out to help them fix their issues. You knew it was a hostile action, you broke things, you fix them.
retroactively remove things from old versions? This is crazy
PowerShell is now installed on many hundreds of millions of machines.
With great success comes great responsibility.
We can and will change things but we have to do so in a thoughtful manner.
Jeffrey Snover [MSFT]
I installed PS on my ubuntu last night, it works but I don't really see the point in using it on anything but windows. Last thing I need is worry whether my scripts will run on my custom shell script as if running ubuntu didn't come with its own issues to worry about already.
cd is a shell builtin on every single *nix shell, not an independent tool. Every shell has its own cd implementation.
Now what do I say? "Impossible without awful hackery"?
Note that some of these are part of the POSIX standard, so there's not a huge amount of variance allowed between shells which are being compliant. Obviously, PowerShell doesn't adhere to this.
[1] https://www.gnu.org/software/bash/manual/html_node/Bourne-Sh...
[2]: https://www.gnu.org/software/bash/manual/html_node/Bash-Buil...
And zsh: http://zsh.sourceforge.net/Doc/Release/Shell-Builtin-Command...
Powershell doesn't really have "builtins" per-se, every cmdlet is executed in the process of the shell itself but they're all contained within loadable modules (though 2-3 modules are loaded with the shell startup by default), Invoke-WebRequest is contained within Microsoft.PowerShell.Utility for example.
I don't like the characterization of the RFC process as a bureaucracy. RFC processes are more open than a pure "bazaar". In the lack of any formal, open process to make project changes, there ends up being a hidden informal "be friends with this person to get your patch merged" process, which is far less transparent.
>jpsnover commented ... @bagder You bring up a great point. We added a number of aliases for Unix commands but if someone has installed those commands on WIndows, those aliases screw them up. ... We need to fix this.
> Snover is a Technical Fellow at Microsoft & the inventor of Windows PowerShell ...
The thread goes on at length about bureaucratic requirements for the change. I guess this is what happens when you hold a bazaar inside the cathedral.