Skip to content
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

p5.js 2.0 Updates #7261

Open
Qianqianye opened this issue Sep 11, 2024 · 4 comments
Open

p5.js 2.0 Updates #7261

Qianqianye opened this issue Sep 11, 2024 · 4 comments

Comments

@Qianqianye
Copy link
Contributor

Qianqianye commented Sep 11, 2024

Topic

Hi!

Earlier this year, we initiated the p5.js 2.0 RFC (Request for Comment) process to collectively re-envision the next major release of p5.js with the community, with a strong focus on our core value of access. We want to extend our gratitude for your participation—over 60 p5.js 2.0 proposals were opened and discussed. You can find all 2.0 proposals under the label ‘p5.js 2.0’. We’re excited to share some updates with you.

We’ve organized all the proposals into a p5.js 2.0 GitHub project, categorized by priority, project size, and phases. Proposals in Phase 1 are planned to be completed by the end of October, while Phase 2 proposals have a tentative completion timeframe around the end of 2024.

Governance Model and Decision-Making Process

To ensure collective decision-making on which proposals to implement, the p5.js 2.0 project follows this governance model and decision-making process, which includes three components:

  1. p5.js 2.0 Core Committee: Responsible for organizing proposals, making initial approval/decline decisions, prioritizing, and assessing project size and phases.
    Qianqian Ye, @Qianqianye: p5.js lead
    Kenneth Lim, @limzykenneth: p5.js mentor
    Dave Pagurek, @davepagurek: p5.js contributor and maintainer

  2. p5.js 2.0 Advisory Committee: Responsible for making final approval/decline decisions on proposals.
    Lauren Lee McCarthy, @lmccart: p5.js creator
    Nat Decker, @natdecker: p5.js accessibility consultant
    cypress masso, @outofambit: 2019 p5.js fellow
    Stalgia Grigg, @stalgiag: 2019 p5.js fellow
    Daniel Shiffman, @shiffman: p5.js educator

  3. Community Input: Solicit comments on implementation details or potential implementers.
    For any proposal accepted for implementation by both the core and advisory committees, its status will be updated to ‘Implementation’ on the p5.js 2.0 GitHub project, categorized by high, medium, or low priority. Proposals not selected for implementation for now will be labeled as ‘Out of Scope’ or 'No Priority' and will not move forward to the next phase, but we are open to implement them in the near future. The broader community is encouraged to leave comments on accepted proposals, and these will be considered during implementation. However, the decision on the proposal itself will not change at this stage. The goal is to clarify the implementation approach and identify potential implementers. We are committed to work with a group of implementers that reflect the diversity of the p5.js community.

What's Next?

Several p5.js 2.0 proposals are already in progress or almost completed, such as the Functional core and modular build, Async/Await setup(), Typography module revamp, and others. Please see the latest updates in the dev-2.0 branch. We will continue to update the p5.js 2.0 GitHub project and the dev-2.0 branch as we move forward and will share updates with the community. Please feel free to leave comments in this issue if you have any questions about p5.js 2.0 process and proposals.

Our current priority is the p5.js 2.0 issues and PRs, so it might take us a bit longer to review other issues and PRs. However, we will get to them eventually! We appreciate your patience in the meantime.

Thank you!

@ejgutierrez74
Copy link

Hi, im a teacher of vocational education and im using p5 1.11.1, but the course using p5.js would begin after holiday of christmas ( about 10th Janurary). Is there any ETA to release 2.0 ? The core code would be the same or backwards compatible ?

Thanks because ive to prepare classes, so would be great some kind of webeditor with 2.0 RC or the current dev-2.0 branch...just to make some tests and see evolution.

When 2.0 would be released would the documentation be updated?

Thanks

@limzykenneth
Copy link
Member

limzykenneth commented Nov 21, 2024

Hi @ejgutierrez74, we don't want to give a concrete release date just yet as we are still working through many aspects of 2.0 at the moment. A very rough time frame we are aiming for is the first quarter of 2025 but if some delay occurs it can be later.

Most things will be backwards compatible, I expect the majority of simple to moderately complex sketches will work out of the box, with probably the most notable non-compatible feature being the loading functions no longer using preload() and will be promise based. You can have a look at the proposals for a sense of what may be changing. We will probably also release a migration guide for transitioning from 1.x to 2.0 but at the same time there will likely be a relatively short period of bug fixes for 1.x so you can continue using 1.x even after 2.0 has released.

Some stuff are still not stable in the dev-2.0 branch so I won't want to prepare an RC just yet to avoid people trying it out expecting something that may change later. You can build from dev-2.0 or use npm run dev/npm run dev:global to test the current state if you wish.

The documentation will be updated with the release of 2.0.

@ejgutierrez74
Copy link

Thanks i dont want an exact date, like 10th of December at 18:00. but i didnt know if it would get out this month, the next month or next year ;) You information is what i needed, as in first quarter id continue using 1.11 or the 1.X release at the moment...Perhaps if by the end of the course april/may 2.0 its released, then we can take a look and try to migrate our code....or see some news or new features on 2.0.... Then probably next course in September 2025 we could hopefully use 2.0 or even 2.0.X....

Thanks again

@Zearin
Copy link
Contributor

Zearin commented Jan 11, 2025

I just discovered that there is a young, competing (fork?) project called q5.js:

https://github.com/q5js/q5.js

I think many of its changes are well aligned with p5.js 2.0. And since the project is so young, its compatibility with p5.js is still very high at the moment.

Recommendations

1. Explore q5.js differences for inspiration

Young projects with no legacy to support can move quickly. Perhaps they’ve implemented things in a way that p5.js 2.0 could take inspiration from.

2. ”Unite the clans!”

There is enough fragmentation in the JS ecosystem already. I would love it if these projects could merge.

One major difference I noted between each project is in what is emphasized to the public. I love how p5.js emphasizes accessibility, creativity, and learning. q5.js emphasizes modern code and performance…but the human element and positive vibes are absent.

What I definitely don’t want to see for both projects to slowly diverge over time, such that they share enough API to make people think that it’s trivial to migrate from one library to the other, when in reality it is as painful as trying to write cross-browser CSS with support for IE6. (…Damn—I‘m old!) I think that might snuff out the spark of curiosity in plenty of students who absolutely do have the potential to learn and become successful in programming, digital artwork, and data visualization.

Thanks for all your hard work on this awesome project! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

4 participants