4 min read

I learn more about p5.js

It turns out that publishing a strident blog post on a topic means lots of people give you their thoughts on it! Which is honestly a blessing in this case, I feel I understand the appeal of p5.js much better. Thanks to everyone who got in touch!

Let's collate some responses - not all of them will be covered here, you can also look at the replies to my Bluesky and Mastodon posts to see more.


Lu responds and tells me to stop telling people to stop doing things. Yeah, alright, fair enough!


Allison responds by linking to a real thoughtful aesthetic critique of Processing. This is definitely worth reading, lots to chew on here and by someone much closer to the subject than I am.


the post you linked to from ben fry i think is a one-sided view. i don't know him, but i saw that as a reaction to the efforts of the foundation to diversify, increase DEI efforts, and build community around expanding who can program. clearly they've invested heavily in the ecosystem, with way more folks employed in smaller and larger ways to work on the languages and their ecosystem.

I got pushback at my linking to Ben Fry's resignation.

On this - well, I thought it was interesting context, and definitely interesting gossip, although I don't recall enough of the details to really weigh in one way or another (which is why I linked to it but did not discuss it). But I think the counterpoint is worth reproducing:

going from a modest DIY community, building an educational tool, to a series of tools and an entire ecosystem, and later raising 10million is incredible. centering access and empowering a truly and meaningfully diverse community is sadly extremely uncommon in most programming-related communities. i think their work is kind of incredible and i have awestruck at times with their work and the people they bring to the table and the millions of learners they've impacted.

Post by @ahihi@anticapitalist.party
View on Mastodon

I got a few folks saying that, yeah, but 3D is a real pain. Which I think is very fair. Doing 3D in the browser without a library is something I wouldn't do except as a stunt or to work around some real annoying technical requirements. And p5.js is probably a fine choice for doing this? Or at least, I don't know any alternatives which I'd unreservedly recommend - I've generally used three.js, which is fine, but...


folks we gotta stop typing the word cranny

Mike Cook (@mtrc.bsky.social) 2025-05-19T14:45:18.699Z

We talked about crannies.


I got some people saying "yeah, I should try out Canvas more" or "yes, I agree with this". Obviously these are gratifying responses to receive. I'm not gonna link them directly here because I'm British and have a natural tendency towards self-effacement. You can go look at the replies yourself if you wanna. There's more thoughts and nuance than I'm including here!


Post by @b0rk@jvns.ca
View on Mastodon
Post by @b0rk@jvns.ca
View on Mastodon

Some good commentary from Julia Evans on the specific ways that p5 is friendly and approachable. I agree with this!! It's really good work on their behalf, and it's the kind of work that is so often underappreciated.


Post by @st33d@mastodon.social
View on Mastodon

I got some people pushing back at my position - that I am a reasonably adept programmer and I'm biased towards stuff that suits me.

I don't think this is 100% fair - I am aware of this position, but it's my take that pure Canvas, approached and taught in the right way is not any more complex than p5.js. I mean, there's not currently the resources to do so nearly as easily as p5.js enables. But that's a solvable problem, not inherent to the technology.

And this is something that I don't think anyone explicitly said, although some came close - by demarcating an approach as "p5.js", it creates a boundary when searching - the resources you find will all be using a similar approach, will likely be pitched to an introductory level, generally will be compatible with your current situation. This, I readily admit, is not the case for a raw HTML & JS approach - part of this could be solved by the creation of friendly materials, but not all of it. Part of the strength of the native approach is that there aren't artificial barriers between the intro stuff and the stuff you would use "for real". But those barriers are also helpful when learning.


And finally, the biggest thing to come out of this was something I feel a little embarrassed for missing the importance of.

Post by @chrisamaphone@hci.social
View on Mastodon
Post by @emnullfuenf@chaos.social
View on Mastodon

It's that the p5.js web editor is super important, especially when teaching. Giving people somewhere they can go, with any browser, type in some small amount of code and then immediately see the result... yeah, it's important. And, too, when teaching, giving them a way to fork the teacher's example code, a way to easily modify it and then run it themselves... yeah, that's important. And, like, this is supposed to be my whole deal! I make accessible tools and yet I didn't mention this accessible tool as a reason for p5 being the tool of choice.

And, this being my whole deal, I'm immediately wondering... well, but how difficult would this be to solve? Should I make a little editor with the defaults I like?

I started scratching out a template out in Glitch, just to see how it would work. I think it's a viable approach! Very minimal right now, there's no friendliness around interactivity for example. And, if you're one of the people wondering what Canvas code would look like and how it compares to p5.js, then you can also take a look and see how it compares.

But more thoughts on the requirements for a competitive web editor in another post, maybe. I'm gonna try to avoid building it, I don't know that I need a new project right now, but I'm interested in what shape the design would take.

(and I repeat the call-out I made before for some simple p5.js sketches you'd be interested in seeing me replicate)