Feature Request: Its 2020, new scripting language #5904

Closed
opened 2026-01-31 00:24:56 +00:00 by claunia · 4 comments
Owner

Originally created by @komawoyo on GitHub (Jan 14, 2020).

Description of the new feature/enhancement

Its 2020 and while we are at it with a new Windows Terminal, we should also design a new robust and strongly typed data oriented (?) shell scripting language. Maybe members can voice their opinions (ie rather use python instead of bash/batch because...). Also the following may be useful.

https://bit.ly/30cIddA
https://mywiki.wooledge.org/BashPitfalls
https://www.experts-exchange.com/articles/673/Advanced-DOS-batch-pitfalls.html

.... I mean this would be an addition to what we have already to remain backwards compatible similar to what is happening with ConPTY/ConHost.

Originally created by @komawoyo on GitHub (Jan 14, 2020). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> # Description of the new feature/enhancement Its 2020 and while we are at it with a new Windows Terminal, we should also design a new robust and strongly typed data oriented (?) shell scripting language. Maybe members can voice their opinions (ie rather use python instead of bash/batch because...). Also the following may be useful. https://bit.ly/30cIddA https://mywiki.wooledge.org/BashPitfalls https://www.experts-exchange.com/articles/673/Advanced-DOS-batch-pitfalls.html .... I mean this would be an addition to what we have already to remain backwards compatible similar to what is happening with ConPTY/ConHost. <!-- A clear and concise description of what the problem is that the new feature would solve. Describe why and how a user would use this new functionality (if applicable). -->
claunia added the Issue-FeatureNeeds-TriageNeeds-Tag-Fix labels 2026-01-31 00:24:56 +00:00
Author
Owner

@zadjii-msft commented on GitHub (Jan 14, 2020):

Maybe something like Powershell?

@zadjii-msft commented on GitHub (Jan 14, 2020): Maybe something like [Powershell](https://github.com/PowerShell/PowerShell)?
Author
Owner
@komawoyo commented on GitHub (Jan 14, 2020): Possibly but https://www.red-gate.com/simple-talk/sysadmin/powershell/a-plethora-of-powershell-pitfalls/ https://www.red-gate.com/simple-talk/sysadmin/powershell/a-plethora-of-powershell-pitfalls-part-2/
Author
Owner

@PaulBags commented on GitHub (Jan 14, 2020):

Not python, mandatory indentation in a terminal would be a nightmare.

@PaulBags commented on GitHub (Jan 14, 2020): Not python, mandatory indentation in a terminal would be a nightmare.
Author
Owner

@DHowett-MSFT commented on GitHub (Jan 14, 2020):

Hey all,
Thanks for jumping in and suggesting this.

Scripting languages, especially those with interactive components, are a rasonably contentious matter. There are articles extolling the virtues and pointing out the pitfalls that you can probably find for any language ever invented. Nonetheless, we need to choose one that makes the most palatable tradeoffs for everyone (users, developers, system administrators, those with interactive and automated scripts, etc.) and move on.

The choice Microsoft has made is Powershell. It fits a lot of the categories you originally enumerated: it's robust, it's data-oriented, and it's at least somewhat-typed.

Powershell is finally reaching a point where people reach for it instead of batch, and people want to use it on Linux and macOS. It would set us back ten or fifteen years and incinerate an immense amount of community goodwill if we were to stop it, abandon it (or leave it in maintenance mode) and move on to "greener pastures." We're just not going to do that, and this issue isn't really the best place to have the hypothetical discussion about what-if-we-would.

There isn't anything actionable for my team or my project here, and I have a feeling that this thread could easily get out of hand, so I'm going to get out ahead and close + lock it.

Thanks for your understanding!

@DHowett-MSFT commented on GitHub (Jan 14, 2020): Hey all, Thanks for jumping in and suggesting this. Scripting languages, especially those with interactive components, are a rasonably contentious matter. There are articles extolling the virtues _and_ pointing out the pitfalls that you can probably find for any language ever invented. Nonetheless, we need to choose one that makes the most palatable tradeoffs for everyone (users, developers, system administrators, those with interactive and automated scripts, etc.) and move on. The choice Microsoft has made is Powershell. It fits a lot of the categories you originally enumerated: it's robust, it's data-oriented, and it's at least somewhat-typed. Powershell is finally reaching a point where people reach for it instead of batch, and people want to use it on Linux and macOS. It would set us back ten or fifteen years and incinerate an immense amount of community goodwill if we were to stop it, abandon it (or leave it in maintenance mode) and move on to "greener pastures." We're just not going to do that, and this issue isn't really the best place to have the hypothetical discussion about what-if-we-would. There isn't anything actionable for my team or my project here, and I have a feeling that this thread could easily get out of hand, so I'm going to get out ahead and close + lock it. Thanks for your understanding!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#5904