My first impression of Processing was good, but now that I'm trying to actually do something with it, I'm being held back from "sketching" by all the tedium of dealing with Java syntax. It's frustrating to have things not work because of variable type or declarations or class re-declarations or whatever.
In the FAQ, it admits that the syntax is "crummy", and in the Tutorial calls it "somewhat bewildering", but it explains that one purpose of the language is "a point of transition to more complicated or difficult languages like full-blown Java or C++". This is also in the "Getting Started" page:
Quote:Processing was never intended as the ultimate language for programming visuals; instead, we set out to make something that was ... A stepping stone from scripting languages to more complicated or difficult languages such as full-blown Java or C++.
So my questions:
1. Why is this one of the goals of Processing? Is it really one of the goals from the beginning, or was this just added in later to justify not changing the syntax?
2. If the syntax is never going to change, is there another language that meets the first two criteria, but not the third? Something that
is intended to be the ultimate language for programming visuals, with a syntax appropriate for this purpose?
Also, it says
Quote:At the intersection of these points is a tradeoff between speed and simplicity of use. i.e. if we didn't care about speed, Python, Ruby or many other scripting languages would make far more sense (especially for the simplicity and education aspect of it).
Quote: Of course, strictly speaking, Java is itself an interpreted language, but its bytecode compilation brings it much closer to the "metal" than languages such as JavaScript, ActionScript, Python, or Ruby.
But isn't Python compiled to bytecode, too? Is it that much slower for graphics stuff like this? Seems like with a graphics library written in C it could be very fast.
Obviously a major benefit of Java (and processing.js) is that it can run in a browser, but it seems like that could be done with a different syntax going through a translator anyway.