Hi
I'm part of a team that are working towards enabling the Arduino board to be driven by high level languages running on a computer.
We have focused on Java and have created JArduino. The JArduino code runs on the computer and comunicates with a Arduino board,
so you can controll all the pins as you normally can with c++.
Why use JArduino you say?
Well, JArduino enables you to write java applications that can easily communicate with your arduino board.
JArduino gives a good hardware abstraction and don't allow you to write/read from unexisting pins (unlike the native Arduino language)
It's easier to learn for people already familiar with Java.
and many more good arguments
The Jarduino package also comes with a grapichal program which allows you to click on a pin and send a digital write to it, and it will be visualized on screen AND it will perform a digital write on a connected Arduino board.
This means that you can test you Arduino setup before you code it (and maybe have to do some debugging).
From this program it is also possible to define a program flow and compile it into both JArduino code and native Arduino code.
If you want to try it out you can find the repository here: https://github.com/ffleurey/JArduino
And a wiki page with (hopefully) everything you need to know https://github.com/ffleurey/JArduino/wiki
A two minute tutorial to get started https://github.com/ffleurey/JArduino/wiki/2-Minute-Tutorial
I hope you can make use of this library and spread the word.
Happy coding
Tha Jarduino Team