I found MacAVR by these same people early...here is this...
Thanks for the link - very interesting. But the initial image confirms my suspicion:
So the 8k of Flash Memory (actually just under) is used by the JVM (ie the Java runtime interpreter) and you only get 512 bytes of EPROM for your program. So on an 8k chip you don't have much space for your application! I appreciate that Java apps compile to a very small size (since they are pseudo-code) but, even so, not much left to work with. Practically I think that this means you would need to standardise on bigger, say 32k, chips and hence the higher $ entry point which counteracts my wish to aim for the 'low entry' '$50 Robot' folk. The other complication for new-2-Java folk is that they would also need to download and install any new revisions of the JVM. And this is the big hassle with any interpreted language like Java and most BASICs: bugs can be in your code or in the currently installed 'language'. I seem to spend my 'real life' downloading new JDK's, JRE's and versions of other browsers and 3rd party stuff and then have to re-test what works with what.
So a benefit of C or C++, even though I prefer Java, is that they are compiled (ie they do what they do) whereas sometimes Java can do 'not what they do' depending on JVMs etc.
Not wanting to plunge the dagger further into the back of Java but I've also thought about the following.
Java is great in a commercial world where you can compile a program once and then send the executable to people who may run on it on Windows, Mac, Unix etc without ANY modification - which is great. But in a microcontroller world I doubt if there would be any point in me sending someone some Gargantuan128 code and expecting it to run on their AT Mega8 - as the IO would be different, I have 20 UARTs but they have 1, I have 39.5 timers working at 128 bit resolution and they have 3 working at 8 or 16 bit. IE in mcu speak we tend to be working at a very low level.
So the only way around it is to build a low-level I/O abstraction layer (ie an Operating System!) that makes various hardware look the same, or if not, then report its own capabilities so that the layers above can re-act accordingly. Hhhmmm - may not be $50 Robot kinda code .....
I'd love to do stuff in Java but just ain't sure mcu's have enough uumph!