This is a great topic. In the last months I've been teaching at a Master on interaction, with quite a large focus on coding, where most students had no previous experience on that. And I totally agree that Java holds a extra difficulties for people getting started with code. Specially when teaching to students coming from arts, that pretty much stopped studying math since high school. Starting to use programming and getting to understand its logic can be a very slow process of assimilation for many of these students. And things like the difference between int and float, which shouldn't matter at all at this level of programming, are just a burden that are making that assimilation slower. It doesn't seem like much, but it can be quite hard for some people, and all these things add up. Types, declaration, syntax... Some people students even feel overwhelmed and intimidated, and abandon the ship.
In the case of Ruby-Processing, this:
Code:
int x = 0;
void setup (){
}
void draw () {
background(255);
x += 1;
if (x > width) {
x = 0;
}
line(x,0,x,width);
}
could become this:
Code:
def setup
@x = 0
end
def draw
background 255
@x += 1
if @x > width
@x = 0
end
line @x, 0, @x, width
end
(In Ruby parentheses are optional, so they could be added for clarity, or not. And there's a syntactic sugar version of IF, but this one is closer to talking.)
Goodbye types, goodbye void (try to explain void to a newbie), bye declarations outside of functions, and bye bye parentheses, brackets, semicolons.. This lifts a huge weight out of their shoulder. It allows them to focus only on the stuff that matter the most: variables and methods.
But at this point, I still prefer holding these other burdens instead of asking them to use an editor, getting acquainted with a command line, and everything that comes with that. The Processing IDE is damn practical. Just install it, in any platform, and it comes packed with all the features needed, plus it has a nice big play/stop button.
What would be a big step forward is some kind of integration with the IDE itself.
By the way, as far as I know, Ruby is actually a damn nice possibility for this kind of bridge. It's a flexible language, with its meta programming and other tricks. And JRuby is by itself an impressive implementation of Ruby in Java. I saw a few benchmarks where it was way faster than Ruby 1.8. (1.9 is currently in beta). Plus its community is growing very fast. Gartner has just speculated that by 2013 there would be 4 million Ruby on Rails developers. On the other hand, so is Python, which has a great art driven community, quite the opposite of Ruby. But Ruby's syntax is cleaner and a few nice tricks python doesn't have (check this and see what I mean http://tryruby.hobix.com ). Anyway this is the ongoing python/ruby debate. And I'm biased, I use Ruby for web development, and so far it's mostly used for commercial applications, I'd love to see it growing in the arts fields.