New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create pwsh as a shorter name for calling powershell.exe #4214
Comments
I would like a short alias too, but this is why we didn't get go with Open to other suggestions, but most of the obvious *sh ones have been taken. After the only wget/curl alias thing, I'd really like to avoid colliding with other packages out there, even if they're less common. |
I'm not too crazy about this whole idea but how about |
I've never been keen on posh as a shortening of powershell. pwsh seems better but a quick internet search raises some possible issues. if we're going to do this I'd suggest as short as possible so what about just ps? |
OK - forget that - I just realised ps is an alias for get-process. that would be too confusing |
I'm getting strong deja vu right now. 😉 |
I appreciate PowerShell's readability (when not using aliases) so running |
Some other ideas are: There is definitely diminishing returns with these names though on whether they really save anything or just add unnecessary confusion if they are even available. |
|
😄 S#, P# |
@PowerShell/powershell-committee discussed this and is open to having a shorter symlink name, but we can't squat on anyone that already exists. |
Wait, wait! I got it:
Another, possibly complementary option: provide an automatic variable whose value invariably reflects the very same path of the binary that launched the current session.
The advantage of this approach is that it is impervious to variations in / manipulations of We already have That said, this relates to the discussion about not polluting the global namespace with automatic variables - see #4216. |
.Net Core, CoreFX, CoreCLR, PowerShell Core - we could consider "core" as base. |
|
We can remember |
I like |
My concern about incorporating the word "core" is that it carries no useful information on Unix platforms, where there's no other edition that it needs to be distinguished from. |
@rkeithhill how about I'm torn on some of the same names myself. I like the readability of It would be good to come up with a final list of names that can be used and do an official poll like the Edge team did. If there are any upcoming PS Community or official events, links to the poll can be given out to try and reach a larger audience. |
Again, I see no benefit in including the word "core", especially if there's a chance that the editions might be unified one day (and on Windows, folks seem to have lived comfortably without a short name for Windows PowerShell for a good decade). Agreed re obscurity of My personal vote is for |
P.S.: In case Windows PowerShell also needs a short name, simply prefixing with |
:-) Should we rename .Net Core? |
@iSazonov: Should we rename Windows PowerShell "Windows PowerShell .NET Framework [FullCLR]?" |
One part of cross-platform portability is that the same commands should work on both platforms if they do the same thing. Before this change, I could run Making software that is easy to use means caring properly for a million little things. Using strange and unintuitive names works counter to that. |
Not accurate. You could run
well its clear it's not universally liked, but... what alternative do you suggest? I see everyone griping about the name but no alternatives to the underlying problem this name change addresses. As I said "You can't always get what you want" No matter what name was chosen, people would be unhappy. |
My feedback was about usability and the concern of a shitstorm that enforces some re-names again and endless discussions.
Separating Windows and Core is really a BETTER reason for the rename then "Create a shorter name" ! I suggest to do more clear communications about that (Issue Title, Release Notes etc) other feedback: regards |
@WernerMairl There is an open discussion about using 1.0 instead of 6.0.0 #5165. Please go to that thread and read and comment. Also, since you have been using it and have run into things you think need polishing, please check open issues to see if they address what you have run into. If there is an open issue, vote on it or comment and if not please open a new issue so they can be fixed. Several of us community members are actively engaged in fixing the lower priority issues and the Microsoft Team has been doing an amazing job working the higher priority and more difficult issues. Also, it's never too late to become a contributor yourself! On the issue description and change communication, I agree that there was room for improvement on the communication of this change and why it was necessary. The roles of different people in this repo can be a bit confusing, but I am not a part of the PowerShell team, just a community contributor with (essentially) forum moderation privileges. I can't speak for the PowerShell Team, but I suspect they understand this fact themselves. In their defense, this one is kind of hard to communicate. The majority of complaints seem to stem from the lack of understanding of the similarities and differences between Windows PowerShell and PowerShell Core. In order to effectively communicate this change, they would have needed to also rehash what was spelled out in the July 14th blog article. Which even then, people are still having difficulty navigating the similarity and differences. I think that it would need a lengthy description as to why the name change was done that many would still not read. I suspect the torches and pitchforks would have come no matter what. |
I understand what you mean but I counter that this is not what I want. There is a hidden assumption implicit in my statement: I expect PowerShell and PowerShell Core to be completely equivalent as long as I use common features. So far, this has gone without issues in all my use cases. |
@sandersaares I believe your experience to be one of luck. It certainly doesn't match my experience. Also, I believe that assumption to be dangerous. This is a major version with a ton of documented breaking changes with a completely different underlying platform. This wont be like previous major versions of PowerShell with near 100% backwards compatibility. |
I see some people still making the false assumption that the changing of the executable name was primarily to save on typing. I can see how people may have gotten this impression since this original issue that was used for the PR started with a title asking for a shorter name. I agree that we can improve our communication as we shouldn't expect everyone to read all the comments that the Committee makes on decisions. Particularly on a controversial one like this where the summary of the decision is easily lost. It also seems that there is a fundamental misunderstanding of what PowerShell Core 6 is, particularly in relation to Windows PowerShell. Windows PowerShell 5.1 is still and will be the in-box version of PowerShell on Windows. My team also continues to support it as needed. We fully expect customers to continue to rely on Windows PowerShell for as long as they need to which may very well be at least the next 10 years. I think it was only recently when the downloads of WMF5.1 finally surpassed the downloads of WMF4.0. PowerShell Core 6 is the next evolution of PowerShell where it is not only cross platform but also Open Source. As @markekraus noted, it is a major version change which allowed us more flexibility on accepting breaking changes we would never consider for Windows PowerShell. Also noted that PowerShell Core 6 is explicitly designed to work side-by-side (not only with Windows PowerShell but other versions of PSCore6). There should be no ambiguity of what you get on Windows when you type |
@SteveL-MSFT a blog post on the name change would be good. It could cover the main driver for why the name change with a clear example of the problem on Windows. It would also be good to cover why posh and psh didn't make the cut as well. |
Maybe set up "powershell" as an alias for pwsh during unpacking+install. This just broke a build I was working on for a couple of days until I tracked down this issue. Edit: on linux |
@markekraus has a nice blog post that captures the what and whys: https://get-powershellblog.blogspot.sg/2017/10/why-pwsh-was-chosen-for-powershell-core.html |
Today I saw the first usage of |
powershell.exe is only provided by Windows PowerShell, PSCore (ie non-Windows) uses pwsh. PowerShell/PowerShell#4214 (comment)
Can we get an official ruling on the pronunciation of Looks like "poosh" to me. |
@apjanke the generally accepted pronunciation of |
Works for me. Thanks for the official confirmation! |
Why was this never fixed? It is still "pwsh" in Mac/Linux and "powershell" in Windows - so broken |
Maybe because you haven't installed PowerShell Core? |
@Cloudmersive @saschanaz is right. Here's why. There are two different implementations of PowerShell. The original "Windows PowerShell" that has shipped with Windows since Windows 7. This is powershell.exe and does not run on anything but Windows. It is built on the desktop version of the .NET Framework (Windows only). Then there is the cross-platform version of PowerShell built on .NET Core that started life as "PowerShell Core" but has recently been shortened to just "PowerShell". It does not come with Windows atm. But it runs on Linux, macOS and Windows. You have to install it separately. This is pwsh.exe. On Windows, you will have both powershell.exe and pwsh.exe (if you install it) and they do behave a bit differently due to differences between .NET Framework and .NET Core. There are folks still using powershell.exe where the move to pwsh.exe would break their scripts. So we need both names. |
Can someone teach the bot to lock closed posts after a few months so we don't all get pinged when someone zombies them? |
Well - it was never broken. PWSH.EXE and POWERSHELL.EXE are two quite different products and are not totally compatible. There are things you can do on one but not the other. TL;DR: nothing is broken. And I agree with @Jaykul! |
I'll lock this issue. Locking all old issues is something that's been discussed before, but we have a few active old issues and personally it seems a bit heavy handed to me. Feel free to raise it in a separate discussion, like the community call or similar. |
We have GitHub Discussions now. |
The muscle memory from switching cmd to powershell is a pain. It is made worse by the fact that it is much longer than typing out cmd or bash. Even with Windows Search in Start, it often picks up the ISE if you have been using it awhile, so typing out the full name is often needed.
A better name would be posh.exe or other valid extension. It is as long as bash and just one character longer than cmd. Posh has been the accepted abbreviation in the community for all things PowerShell so there is some familiarity there. I don't believe there are any conflicts with other apps that this would cause, but that would need some digging.
This could be achieved in two ways.
The former maintains backwards compatibility and allows the user to choose between posh or powershell.exe. Existing scripts not impacted.
The latter could help give more freedom to issues like #4199 and other POSIX proposals to how the shell is started. However, it is a breaking change and would need to be reviewed for the impact and the branding implication.
I think making an official posh shortcut is the best option with minimal impact. New documentation could give preference to posh as the way to enter PowerShell.
The text was updated successfully, but these errors were encountered: