I know D3, and wonder if I should learn P5/Processing too.
D3 goes beyond being just a library. I intend to make it my main data visualization tool, and I’ve been working on my knowledge of it.
But I’m thinking of learning Processing/P5 as well. (And I’m leaning towards P5, as I’m reluctant to dive into Java for now.) The following is quite persuasive:
… I learned Processing before D3 and do almost everything using D3 these days.
Though I would strongly recommend learning Processing.
Processing, by contrast, has a very different approach to things, and that Processing approach, in itself, is worth learning it. Processing programs are typically built around a main loop, and at each iteration the whole scene is redrawn. Being familiar with that logic actually enables you to take your D3 further. Some of my D3 vis are built like Processing sketches.
Another interesting aspect of Processing is its immediacy. You are manipulating physical objects, so it’s much more direct to make stuff. Compared to Processing there is a lot of overhead in D3. So, it’s much easier to sketch in Processing.
It’s also easier to work with images using Processing, either read them or write them. Also, independent agents are easier to implement. There are tons of functions that can be used for generative art which are there out of the box in Processing and which would be a pain to get to work in D3. Also: 3D. Easy in Processing, a pain in D3 (despite the name).