Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Getting Started with Processing Book Review

June 30, 2010

Processing is a simple object oriented language well suited for cross-platform graphic manipulation and data visualization. The development environment is identical to the Arduino IDE, which bases its own language on Processing's syntax. Does the book, written by the designers of Processing, successfully encourage readers to pursue the language further? Read on to find out.The authors explain in the book's Preface why they created Processing to pay homage to their childhood introduction to programming using BASIC and Logo. They were also heavily influenced by John Maeda's Design By Numbers (DBN) language. Understanding these origins helps experienced readers realize the constructs and syntax used in Processing. Additionally, there has been a heightened awareness of the Processing language due to the prevalence of Arduino programming. Thus, for those who have already developed Arduino applications upon whose language is based on Processing, learning Processing is a simple affair.

The first chapters introduce the idea of sketches (i.e., Processing's term for programs), using the IDE (a no-brainer for those already familiar with the Arduino IDE), and a Logo-style walk-through of drawing primitive shapes on the screen. Chapters 4 through 7 cover variables, responding to mouse and keyboard events, loading and manipulating images and fonts and enabling motion via tweening, timers, scaling, rotation and more. The concepts of functions, object oriented programming and arrays are next, with the book concluding on how to extend the Processing language with OpenGL, PDF export of images and 8 pages on capturing data from the Arduino's USB-Serial port and visualizing that data on screen in appealing ways. Four appendixes on coding tips, data types, order of operations and variable scope fill out the foundational programming principles presented in the book.

Getting Started with Processing is presented in the same style and image design as Make Projects' related publication, Massimo Banzi's Getting Started with Arduino, and the brief yet to the point topics cover a lot of material in a small amount of space. The authors do a good job with keeping their explanations basic enough for beginners to follow along and code the examples with encouraging positive feedback.

I will probably never use Processing for my own projects since I can attain so much more functionality using Python with various graphic packages. I also will continue to encourage nascent programmers like my kids and their friends to start with Ruby or Python as a first language rather than Processing. However, for those who have already had their initial introduction to coding via the Arduino IDE, Processing is a natural fit thanks to its nearly identical syntax and the many Arduino projects that use Processing as a data collection and visualization conduit.

Title: Getting Started with Processing Authors: Casey Reas and Ben Fry Publisher: O'Reilly Media ISBN: 978-1-4493-7980-3 Pages: 208 Price: $19.99 US

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags


<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags


<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

