
The History of the Processing Programming Language - kwindla
https://medium.com/@ProcessingOrg/a-modern-prometheus-59aed94abe85
======
tokyodude
"and Processing are poorly-designed languages that support weak ways of
thinking, and ignore decades of learning about learning." \- Bret Victor

[http://worrydream.com/#!/LearnableProgramming](http://worrydream.com/#!/LearnableProgramming)

like many things "better" is often not what wins. Kind of ironic that many of
the "learning about learning" ideas also came from MIT

~~~
whywhywhywhy
As much as I absolutely love the work of Bret Victor, Processing actually
shipped and is teaching people every day how to code.

Although he's achieved a massive amount of research in the field, I'm still
waiting for absolutely any of it to ship into systems and actually teach
people.

~~~
tokyodude
I agree, shipping is better than not, but that article lists lots of low-
hanging fruit that would help users of Processing.

One example is designing for autocomplete. He asserts that shape(type, ...) is
better than square(...), triangle(...), circle(...) because once you know
`shape` then typing `sh` finds you all the shapes where as you have no idea
what shapes are available when you have to guess all function names (circle?,
ellipse?, hexagon?, rhumbas?)

IIRC there were other low-hanging fruit.

~~~
olavk
Not sure I like the suggested autocomplete on a string though. But using
namespaces or similar like Shape.Triangle... would autocomplete better. I know
that Microsoft deliberately designs the .net API's to facilitate exploring an
API by using autocomplete.

------
bkanber
I use Processing whenever I teach an intro to programming workshop or course.
It's kind of the perfect language for beginners.

First, it eliminates the need to navigate the programming ecosystem. Rather
than having to choose python, Ruby, js, or C on day one, processing lets you
get students up and running quickly. No need to install local servers or
compilers or interpreters, just install processing.

Second, because it makes visual programs easy, it lets students develop an
intuition for the effects of their code faster. A negative sign makes itself
obvious when you see an object moving in the wrong direction.

Finally, it's fun. Students get to make interactive games that keep them
interested, rather than yet another Fibonacci sequence calculator. I think
this is the most important thing to nail in the early days of a programming
education. Build fun things to keep you motivated to learn more.

It also has a pretty easy progression into JavaScript, so students have a
clear next step if they wish to break into "real" programming languages after
their course.

All in all I only have good things to say about Processing, as long as it's
used in the right educational context. Glad to see it's still doing well.

------
dang
Also
[https://news.ycombinator.com/item?id=16874102](https://news.ycombinator.com/item?id=16874102),
but that looks like a different article.

~~~
kwindla
Oh, cool. That one's also a good read. It's more of a user's perspective on
Processing.

------
Crespyl
I encountered Processing after I'd already learned the very basics of
programing, but found it invaluable as a tool for quickly experimenting while
learning practical concepts.

Daniel Shiffman's excellent book "The Nature of Code"[0] uses Processing (now
ported to Processing.js) to teach all kinds of practical introductory tools
useful for modelling real things in an interactive environment. Vectors,
forces, simple steering/flocking behaviors, cellular automata, how to set up
and use Box2D, even a bit on neural networks. For a student who knew how to
write some syntax, but not enough to actually create interesting things, it
was (and still is) a fantastic resource.

Even though I've mostly moved on, I still love the simple graphically oriented
"sketch" model and am now using Quil[1], a Clojure layer over the Processing
core, to teach myself Clojure by reimplementing some old projects. Live-
editing Lisp code in Emacs while interacting with a real time 3D graphical
environment is an eye opening experience.

[0] [http://natureofcode.com/book/chapter-6-autonomous-
agents/](http://natureofcode.com/book/chapter-6-autonomous-agents/)

[1] [https://github.com/quil/quil](https://github.com/quil/quil)

