Long I have not known about an interesting environment for working on graphics and animation. It is called Processing. I have long been using Java for all my desktop application needs (with occasional also some animation/custom component coding in Swing). So, I know the pains of developing even a simple visualization, animation or even a worthy UI using Java/Swing.
Recently I started working for a visualization group as an RA/Lead Developer. At work, it is often a requirement to prototype some visualization real fast and hence I was introduced to Processing. And to put it in words, it was like “I was given a power that I could not wield”, and this was not because Processing was ugly or complicated. Rather, it is because it is very different from what I have been doing so far with Swing. In this post, I will try to discuss my first reactions to Processing, which do not include any code samples (that is for later).
I think Processing is wonderful when it comes to rapid Prototyping. It might however take some time to get your head around the plethora of globals that the environment provides (it might drive you a bit crazy at first, so be careful!) and the way it cares of animation or visualizing a component. The reason why I think is wonderful is and as I mentioned before, is the power of rapid prototyping that it gives. Creating STUFF in Processing is very easy, quick and clean (although some might argue).
Additionally, as I am always interested in things that revolve around making school-going kids learning to program, I see Processing as a great selling point. But, only as far as developing that first attraction to programming is concerned. I say that because I think (and in agreement with Learnable Programming) that it is an awful thing to use for making students learn programming.
Programming is not just about executing some commands. It see it as an art and a way of thinking (as discussed in learnable programming). Although, Processing takes away a “boat load of bloat” when compared to modern programming languages like Java, when it comes to creating visual products, it still does not qualify as way to dive into the ocean of programming and software development. Giving kids an enviroment where they can get started with creating visual artifacts to feel the power is one thing, teaching them to program is another. And in my opinion, Processing completely fails on that ground. If you want details on why, Bret Victor has done a wonderful job of explaining why in his post.
At last, these were just my first impressions. Keeping aside the problems with using Processing to learn programming, I still suspect it to be a wonderful environment to test animations and even visualizations. As I am not sure if it offers anything in terms of writing maintable modular code base, it is something I plan explore next( maybe by writing a small game in Processing). Stay tuned for more…