Monday, August 29, 2022

Book Review:Getting Started with Processing

Getting Started with Processing

by Casey Reas and Ben Fry

The Premise

The existence of Processing programming language is a godsend. This is a computer programming language that I tell everybody to learn, and this little computer programming book has a lot to do with it. It is both approachable and logical, something I wish more book writers will follow. Mostly, I'm disappointed. Most computer programming book writers, either imply or outright stated, that the skill of Computer Programming cannot be learned in a book! This is one of the few books that not only stated that it can, but also expected!


Since the intended demographic is for Artists, the technical info is necessarily brief. For further reading, I suggest that you search for books by Dan Shiffman, who also have a YouTube channel. He's a great educator and motivator, and someone you should look up to!



The Beginning

The book begins simply, as is most computer programming book. Between pages 1 and 6, the authors laid down the reason for being, the reason for existence, and the implied purpose of the book. This isn't a book full of heavy technical issues. It's not a complete Reference, or even a complete Tutorials. This book is a good collection of introductory info where you can begin to be productive immediately. The value of this book isn't in what this book includes, but it is in what this book excludes.


After the obligatory installation procedure, the text shows a simple one line program. It draws an ellipse on screen. The fact that the program starts with a graphical interface, where other books starts with "Hello World" program, speaks volumes about the intention of the authors, and I marveled by its efficiency in getting the message across. Not as impressed, though, as the second program shown, which is a simple drawing program using mouse, both as button press and as positions. Interestingly enough, the discussion of variables is still a few chapters away!



Starting to Code

The next few chapters, chapter 5 to 8, explores the concept of computer programming in greater details. Notice that I didn't say in great details. It is an expansion of ideas, yet not comprehensive. What is there, though, is enough to get you started. Again, I was impressed with the examples. This is what efficient coding is all about. To be able to get something that is not only beautiful to look at, but also very quickly coded, that is something to be admired.


About the only thing that I would change is the inclusion of Arrays. The authors, for some reason, decided to present the Array concept in chapter 10. About the only reason that I can think of, is that Processing programming language allows the existence of Array of Objects and therefore shows you the Object creation method before showing you the array. But this is nitpick on my part. I never found the concept of Object Oriented Programming Style to be useful. OO is a good alternative, but I never found the concept of Procedural Programming to be a limitation. 


Looking back into it, I am impressed about the ease the materials were introduced. What other books treat as a big deal, this book presented the materials as a common everyday occurrence. Even the concept of setup() and draw(), which is unique to Processing, is presented as something that naturally occurs. This, of course, is the heart of Event based coding and is a whole paradigm itself. To have such concepts presented naturally, is something that I have never seen done, before or after.



External Materials

In fact, it makes the last chapters inclusion to feel like an afterthought. "Oh, by the way, Processing platform is also capable of doing these things..." is the statement presented. And yes, I find the fact that there is a built-in 3D features to be present is a good deal, but little guidance is spent in how to properly use it. I guess this is a limitation of the format. It's a very slim book, after all. What it successfully presented as non-threatening subject, it fails in comprehensiveness. This is compensated by the fact that the authors includes website addresses, so I don't mind it all that much.



The Conclusion

I think that the book succeeds for the demographic beyond expectation. The materials included are strictly traditional coding practice, but the presentation is such that not only it is fun, but is non-threatening to the lay person. I wish more books would be like that because then the computer programming profession will truly belong to the people. This book is one of the few books that I decided to purchase in paper format, despite the fact that I already have it in digital format. The book is just that good. A must have in my library.




No comments: