Quote:
Originally Posted by davidthefat
I seem to have to use Java... I wanted to use C++ but my mentor is like "The C++ Libraries Are Too Messy" or something like that... And that the Java code wont be any slower than the C++ because of FPGAs or something
|
From talking with several of the people who wrote the C++ and Java libraries (WPILib and WPILibJ), the Java libraries are basically wrappers around the C++ code. If you look through the documentation, you'll see that most things are exactly identical, with the exception of capitalization changes to match the Java naming convention.
Java does run slower than C++ on the CRIO. It's running the Squawk JVM, which is optimized for small devices, and doesn't include all the speed improvements that normal desktop Java provides. That said, the speed difference is not going to matter, unless you're doing something really complex and esoteric. The FPGA and C/C++ libraries do nearly all of the serious computational work, from handling encoder pulses to doing image processing.
Personally, I'm a longtime C/C++ programmer and I'm comfortable with LabVIEW, but I've been converted to Java. The whole software stack is open-source, and installing NetBeans with the FRC extensions on my Linux machine was a breeze. Downloading was simple and straightforward; we spent hours last year just trying to get the CRIO to connect to WRW.