During June, I was taking a break from all the online courses on Coursera and was hoping that I would have more time to do my own stuff like the MATLAB Fun Toolbox. However, I wasn’t really that productive even when I wasn’t taking any classes. So, to prevent further laziness, starting last month, I decided to get back on course on Coursera (well, that sounded strange) in hope that I will use my free time productively, although just by doing some homework.
After a quick peek of the course list, I enrolled myself in a course called Creative Programming. Why? Because the course name sold me. I mean, at least for me, it is the first time I heard that phrase. So, out of curiosity, I just said “Creative Programming, Okay, I’m sold!”, clicked my mouse around a little bit and get myself enrolled.
After enrolled, I went to check the course syllabus, information, etc right away and to be honest, after I read it, I was skeptical about the course. Why? Mainly because it is stated that in this course, we will be using a programming language/IDE called Processing. Yup, I didn’t mistype it. It is really called Processing. While I don’t really care about the software’s name, I’m always very selective about installing new software into my Allie (Yeah, that is my laptop’s name and yeah, I named my laptop), especially the one that I’ve never heard of. I have this OCD where I want to keep Allie as virgin as possible (Wait, that didn’t sound right). I don’t want her to be slow because of some useless start up or background service or some cluttered registry. That’s why I really hate installing new software to her unless it is a well-known game (:D) or it is a copy-and-run software like X-Plane where you don’t need to install them, thus, they are not messing around with your system.
So, to fulfill my OCD, I did some background research on this software and it seems okay because it is developed by MIT, have communities and things like that. So, a little convinced by Processing homepage, I downloaded the program. Praise the heaven, it is a typical copy-and-run software, so, without any hesitation, I put it in to Allie (Wait, that didn’t sound right again) and tried it.
Well, first time seeing the IDE, my first reaction was: “Did I downloaded the wrong software?”, because guess what, the IDE is very very similar with, guess what, Arduino’ IDE. Well, actually it is not very very similar, but it is exactly the same, except in Arduino IDE, they have serial monitoring button, while they don’t have it in Processing because it got nothing to do with serial communication. Other than that, it is exactly the same. To make my case, here it is, a side-by-side IDE comparison that I took from diyroboticslab.wordpress.com.
IDE Comparison – Arduino and Processing (diyroboticslab.wordpress.com)
Logo Comparison – Arduino and Processing
Guess what, it didn’t stop there. IDE aside, their logos are also basically the same. Well, it is different for sure. Processing use simple P as its logo while Arduino use simple A, but the background, the style, and the play and stop buttons inside the logo. It is mind-blowing. I tried to find out why they are like twins separated at birth for about an hour but I could find a clue. I’m guessing that is because their concept is quite the same, but I’ll talk about that later. Now, let’s get back on track.
Processing is cross-platform programming language which can be run in desktop, Android, and iPhone, but it is not the impressive things about Processing. It is designed in such way that it emphasize on graphical programming and user interaction. So, instead of hello world and some other texts that pop up in command line, the developer can build an graphical application and accommodate user interaction right of the bat. In most programming languages (at least the one that I’ve learned), the developer will got stuck in command line for a little while before he/she can make something that is really have button and picture and stuff and can do something when it is clicked. But not for Processing case. So, without needing to know some weird stuff like callback, event, handler, etc, the developer can make a fully operational program that has something that can be seen/click on the screen.
While I don’t know if it is a good thing or not knowing those weird stuff, things does get easier when you use Processing to make graphical/user interaction based program. At least that’s what I felt when I were using it for the course (which is still going until in the end of this month). You can instantly create any simple shape, insert and animate image, play some sound, and even access mouse movement and mouse click to create an interactive program right away instead of the lame hello world on command line.
A code in Processing is called sketch and its basic structure also consist of two main procedure, the setup procedure that is run first and once and the loop procedure that is ran over and over infinitely, which is (Yup, you guessed right) similar to Arduino’s sketch. It is normal for Arduino to have that kind of structure because it is for microcontroller programming (and usually you want your board to keep doing things for you). However, it is kinda weird for a desktop programming like Processing to have such setup-loop structure, although it is not compulsory to use that kind of structure. Nevertheless, this kind of structure makes it easier to develop an interactive program. I’m not trying to sell this software, but I do think it is innovative and unique. And as a learner, it is more fun because I get to make ‘real’ program right away. Believe me, try the program and do the tutorial, you are going to love it.
One thing that I realize about Processing is that due to its emphasize on interactivity with user and its unique structure, the code (or sketch) become simpler than other and developer does not need to spend most of time on the technical side of programming and can spent more time on some creativity for the program itself, hence, creative programming. At least that’s what I felt when I did my homework. Well, I spent most of my time trying to think what kind of program should I make instead of trying to think how to make this program work (and it is quite hard since I’m not that creative in finding new idea). I ended up recycling my previously made XP line screen saver and some lame version of DoodleJump for my assignment (Click on the link to see the program that I made and uploaded on openprocessing.org). Nevertheless, it was a good experience.
Now, about the course itself, the course is 6 weeks course that started last month and will ended somewhere in this month. For the last three weeks, it was an introductory about playing with images and sound, but this weeks the course went all the way about creating a game (Yay). Overall, it was a pretty interesting learn-by-example kind of lecture and I really recommend this course if you want to get your hands dirty on making mobile apps or some interactive desktop program or a game. If doing homework is too much for you, you can just download Processing and play with the tutorial, it is also pretty good and clear.
And that concludes this post. I’m not associated in anyway to Processing but I do hope you get and try to play with Processing. Now, if you excuse me, I have a game to make:D.