If you want to write production embedded code, you have two choices: C and assembly. That's the result of my extensive research, anyway: gcj doesn't work, the AVR forth implementation uses too much flash and can brick your chip at runtime (for other reasons), etc.