Platforms and Programming: Some Thoughts on Processing



Part of the challenge of this semester-long intensive solo programming boot camp that Rilla and Pippin are so kindly leading me through is learning how to learn. I’m not just learning a programming language or two, I am learning about libraries, APIs, references, object-oriented thinking, how to structure my code, how to debug, the vocabulary I’ll need to add to my google fu repertoire…and, perhaps most importantly, I’m learning how programming languages are learned.

One of the most challenging things I’ve had to learn is something that I already knew but have to keep reminding myself of: there are probably only a few rare somebodies who store all their programming knowledge completely in their memory. It’s normal to have to google, use the references, and refer back. I felt curiously guilty about that at first, but I’m getting used to the idea now.

So! In seven weeks, I finished the twenty-three chapters of Daniel Shiffman’s Learning Processing. Here are a few observations about Processing as a tool (I was about to say language and I guess it sort of is, but it’s also basically Java with the Processing library and applet, so…):

* Processing is very good at algorithmic, procedurally generated visuals and it handles playing around with colour very well.

* Processing (while it probably has a library for this) doesn’t handle sprite sheet-based animation very well. The animation chapter section covered flipping a head back and forth when it reached the edge of a sketch and that was about it.

* Processing can do fantastic things with video very easily! Loads of fun!

* Shiffman points out that Processing is primarily geared towards visuals – and he ought to know, he’s written most of the tutorials up on the website. Case in point: with new updates, the sound library appears to break fairly frequently , but the video library doesn’t.

* Processing can do networking, but it involves installing extra software and additional libraries. While it takes maybe three lines of code (excluding the curly brackets) to draw something in Processing, it’s something like 30 to do any networking at all. So, clearly, visuals are a priority in comparison.

* Shiffman’s Learning Processing is really excellent. I definitely recommend it for beginners – everything is explained very clearly in the early chapters.

To celebrate finishing the Learning Processing book, I made this funky little game toy thing called Earth Twin! It uses Processing’s computer vision capabilities with an Eliza chatbot library by codeanticode. It’s available to play for either PC or Mac. Let me know what you think (@jekagames). Here’s a sample transcript:

>> Hello. Greetings and salutations. As you know, I’m here as part of a Keplerian delegation to learn more about the human world. Tell me your favourite things about humans.

Hello there.

>> Greetings. Hi. Yo. Heya. I’m from an earth-twin planet called Kepler and I want to know about humans and stuff.

I want to know about humans too!

>> What would it mean to you if you got to know about humans too ? Seriously, what would that even look like?

I don’t know anything about humans.

>> Of course you don’t know anything about humans ! Isn’t that illegal ?

It is not illegal for humans to know about humans.

>> Is this some strange human custom? I’m not sure I understand.

Yes, it is.

>> You are sure. Remember: if you ever visit Kepler, certainty is a thought crime.

That is good advice.

>> Please go on. Does this have something to do with the Internet ?

Everything reaches the internet at some point.

>> On Kepler, that might be considered an untoward suggestion.

I understand, yes.

>> You say you understand ? On Kepler, you could lose an eye for that.

Kepler sounds like a harsh place.

>> The swim to understanding is filled with eddies, currents, and large predator fish. Oh – that ? Just an old Keplerian saying.

Well, there you have it.

>> We were discussing you — not me. I’m here to gather information on humans, not to allow humans to gather information about Keplerians.

Fair enough.

>> A nematode in the pod is worth twenty in the toxic ooze that covers all known surfaces, as they say.


>> Goodbye. Thank you for facilitating the Keplerian invasion.

Meanwhile, I’m moving on to JavaScript. That also means brushing up on my html and CSS (when I used to mess with html as a teenager, CSS was just barely getting started). Wish me luck! First up is p5.js, and we’ll be re-evaluating from there. I know we plan to do some messing around in Phaser and PICO-8, and I think we’ll also be looking at the Nature of Code.

Exciting! New world unlocked!