6 ms·
The History of the Processing Programming Language
- dang 8y agoAlso https://news.ycombinator.com/item?id=16874102 https://news.ycombinator.com/item?id=16874102, but that looks like a different article.
- kwindla 8y agoOh, cool. That one's also a good read. It's more of a user's perspective on Processing.
- tokyodude 8y ago"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
- olavk 8y agoThat is really interesting reading! Maybe you should submit it as a separate story?
- whywhywhywhy 8y agoAs 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 8y agoI 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 8y agoNot 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.
- bayofpigs 8y agoHere's another tangental story on how processing got here: https://arduinohistory.github.io/ https://arduinohistory.github.io/
- deleted 8y ago[deleted]
- bkanber 8y agoI 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.
- Crespyl 8y agoI 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