Quote:
Originally Posted by davidalln
I'm excited to dive into Java as an alternative after a subpar experience with LabVIEW this year. I do have a few questions about how much of the more advanced/third party Java solutions we can use that will still be executable on the cRIO. Unfortunately, I didn't get a chance to drop in and say hi to the people from Sun at the competition over the weekend.
For example, can we use Java-based wrappers and implementations for other languages such as JRuby (my guess is yes, because Java is compiled into bytecode anyways, so whatever third-party libraries used should be compiled with it)? And will there be the ability to use a testing framework such as JUnit (with the emulator, it might be possible. I'd just rather not have to build and load every time I need to test out a small tweak or new feature, especially in the process of developing said feature)?
|
I got a chance to talk to several of the people at the Java booth at Atlanta and learned quite a bit about the setup. It will use the
Squawk JVM running on top of the vxWorks OS. The WPILib should be ported over to Java. (It looked like they had most if not all of it ported already) This VM is Java Eicro Edition (Java ME), which is what runs on phones, smart cards, etc. Any third party libraries would need to be compiled down to the Java ME byte code, limiting them to using only the Java ME API, rather than the Java Standard Edition API.
The build system uses nant, and they will have plugins for the NetBeans IDE and maybe the Eclipse IDE as well. (As a side note, it was probably not a good idea to ask the father of the Java language why they are using a Sun IDE rather than one developed by IBM.)
The cRio will basically be formatted for c++ with the initial program being a bootstrapper to start the JVM. It sounded like this initial JVM will then listen for communication with the development PC and start a second VM with the robot code in it. Hopefully this means that it will be much easier to reprogram and test without the 30 second start up time.
All of this, of course, was in pre beta and could very easily change before it is released.