Author: Casey Reas & Ben Fry
Publisher: Make, 2010
Aimed at: Non-programmers
Pros: An easy introduction designed to appeal to artists
Cons: Fails to convey the potential of programing
Reviewed by: David Conrad
Processing might be a good place for beginners to start programming. So is this book a good place to start with Processing?
Processing is a simplified language based on Java, designed to be easy to use and to provide near instant gratification to the beginner.
If you look at the language then it's nothing special.
It is a classical object-oriented language in the mold of Java, C# etc. It has a range of 2D and 3D drawing commands that look a lot like the sort of thing you would have found in QBasic or any of the early interpreted languages. For example, Line(a,b,c,d) draws a line from (a,b) to (c,d). In fact, apart from supporting objects, it really is no different from any of many dialects of Basic introduced in the home computer boom of the early 80s.
However, there are some good points about Processing and you can't move back to dead languages such as QBasic very easily. One good point is that you don't need much code to get started, You can more or less install Processing by unzipping it. After that type in Line(10,20,30,40) and run the program to see the line.
In other words, this is a good environment for initial experiments in programming. The beginner can produce something that looks good simply by stringing together a list of graphics commands and this is the approach that this book takes to getting the reader started.
Processing also has a sort of arty feel to it - programs are called "sketches". It is targeted at users who want to be creative in a bohemian-artist-living-in-a-garret sort of way. As such the book doesn't have screen dumps but pencil sketches instead. My guess is that the authors wold have liked the listings to be handwritten as well.
Personally I find this softening of technology alien. I don't want to work with it in a symbiotic glow, I want to master it and make it do my bidding.
As long as you stick to linear lists of commands things are easy but you are not programming.To be a programmer you have to encounter non-linear command sequences that do complex and interesting things. Programming is about the transmutation of a static text into a dynamic process.
If you take a non-programmer and convert them into a programmer then they have a a new way of thinking about the world and a new way of describing it. This is rewarding and addictive but it's often hard to make the transition and the big problem is that programmers who know how to program quickly forget that there was a transition at all. As a result they simply don't value what they know and fail to point it out to beginners.
This is true of this book. When it reaches the idea of loops it attempts to play the whole thing down with a matter of fact introduction. A tiny pencil drawing of a flow chart it the best attempt at explaining what is going on. Why not point out the idea of "flow of control" in a more general way? Why not make something of this really great idea?
Of course the big problem is that the language itself has hardly been designed for the beginner as it uses the C style For construct which is cryptic and far removed from the simple notion of the original Basic For 1 To 10. In this respect at least the beginner would do better to go back to QBasic to get started.
Even so the book could do a lot better at explaining the real ideas that make programming programming.
The book then continues with its very traditional treatment of functions and eventually objects, ending with a look at 3D graphics and interfacing with the Arduino microcontroller. All very shallow but as a result fairly easy to read and fairly easy to follow. Basically if you don't ask the reader to do anything difficult then you have a simple book.
This book isn't as good as it should be but it still has the power to do something positive. It is an easy introduction to using a language that has easy access to graphics and as such it might get some beginners off the starting line. In addition its arty, free-thinking look and feel might be the user interface that gets the non-techie into creating pretty patterns.