P# is a PowerShell-based programming language built by the community for the community.
Please note that P# is a working name and not official. The P# Foundation will select the official name and change it accordingly.
PowerShell is a Microsoft interactive shell and scripting language created in 2006. In 2016, Microsoft made the language Open Source. However, challenges with balancing between Microsoft's needs and Community asks have proven difficult. The PowerShell Committee, the governing body for the language, comprises only current and former Microsoft Employees. This leaves the language, and many of the core language issues held hostage by a team that is not incentivized to prioritize language needs over business needs.
This project seeks to replace PowerShell with a similar language, but one built from the ground up to be a community programming language first.
- P# - The working name for the language.
- P# Foundation - The governing body for the P# language that also serves as the copyright and holder, and licenser.
- Source Language - The parent language P# is written in.
- Create rules for P# Foundation membership
- Plan for P# Foundation incorporation and business structure
- Create rules for P# Foundation quorum and voting
- Identify and recruit initial P# Foundation members
- Nominate and Elect Foundation President
- Nominate and Elect registered agent of due process
- Decide on the language name
- Ratify Articles of Incorporation
- Decide on Source Language
No. Everything about this temporary until we get a foundation set up. The foundation will own everything, and this repo will move to the foundation's GitHub org once created. Mark's role in this is to bootstrap the foundation and move the casual conversations to concrete action items. Mark is more of a facilitator than an owner, and his long-term involvement in the project is not set in stone.
We are not yet ready to disclose a list of foundation members. We can say that the foundation is made up of well-known PowerShell community members whose books, blogs, and presentations many in the community would recognize. We can also say the foundation currently doesn't have any PowerShell Committee members. Mark's involvement makes it evident that at least one Microsoft employee is a foundation member, but no Microsoft employee is serving on the committee as a representative of Microsoft. We will release the names of the founding members after we formalize the foundation.
Currently, membership is mostly closed until the foundation is formalized.
However, in some cases, we may invite additional PowerShell community members. If you are interested in joining at this early stage, reach out to Mark, and he will facilitate possible early membership. At the moment, we will only be accepting new members who are familiar with starting and operating nonprofit organizations or are experienced with language steering committees to help boot the foundation. We will assess adding technical members to the foundation after the foundation is formalized.
We have a community discord server we are not making public just yet. We need to set up the foundation and server to handle the many interested users we expect. We will be making all current and previous conversations publicly viewable on that server. Our objective isn't to keep things secret but to ensure we are set up for success before we invite the community at large. If you are seriously interested in joining in a read-only fashion, reach out to Mark, and he will facilitate that for a limited scope of community members.
That is currently up for debate. We are unsure of the legalities of forking the entire project. While PowerShell is generally under MIT, this is not true for the entire code base. Also, we want to take this opportunity to free ourselves from the bonds of the past. We can now evaluate if C# is still the correct base language and if .NET is still the ideal framework. Nothing is decided here, and this may look very much like PowerShell under the hood, but we don't want to limit ourselves to just forking at this stage.
We are not yet at the stage of discussing these, nor are we at the stage of taking community feedback. We will address technical and engineering concerns after the foundation is formalized. We want to ensure the right decision-making frameworks are in place to guide technical decision-making. We are dedicated to making this a community-driven programming language, and to ensure that, we need those rules in place first.
This is a lesson learned from PowerShell:
If you don't put enough effort into organizing and incorporating the community upfront, you will have an abysmal community experience.