Given the popularity of the JVM, quite a few other languages have been created that compile to Java bytecode, such as Scala, Groovy, Clojure, JRuby/Jython, etc. From what I understand, the Squawk JVM we use for FRC is based on Java ME and CLDC, preventing many of these alternate languages from working out of the box. Has anyone else thought about or tried to use an alternate JVM language for FRC? I’m curious as to the possibilities, particularly with languages that have better support for functional programming.
The 2015 control system will be using Java SE.
Scala for FRC would be awesome. It wouldn’t bee too hard to do either.
Finally. ME has been a thorn in my side for a long time.
I contacted Derek White at Oracle about 2 years ago about this and also looked into the build process of squawk JVM. However, he told me that not all of the code is posted publicly to reproduce squawk for FRC. You have a good idea, but the level of effort required is significant. All of the actual arena communications are inside the squawk build, so even getting another JVM approved may not happen for safety and related reasons.
I think everyone recognizes the limitations of it and are looking forward to seeing what improvements come in 2015.
I am not really a Java person so forgive my inaccuracy. The JVM would be on the CRiO? So you really don’t have the option of changing that.
The inspectors last season verified the version of netbeans plugins we were using. I don’t find in the rules that you have to use a specific version though & it is not on the inspection sheet. (Maybe you do if you want your code to work. )
@FrankJ: Yes, the JVM runs on the cRIO, so we don’t have any option of changing it. The problem with most of the languages I mention is that they require runtime libraries that are built for Java SE. One would have to backport the libraries to Java ME to use one of these languages, which is no small task.
I recently stumbled upon a lesser known language called Mirah that doesn’t require any runtime libraries. It has a Ruby like syntax and compiles directly to Java bytecode. From the looks of this thread, I’m not the first one on CD to discover it: http://www.chiefdelphi.com/forums/showthread.php?t=109460. I haven’t done much with it yet, but it looks interesting.
I agree that getting Java SE in 2015 will be nice. I will have graduated high school by then, but it will definitely open up a lot of new possibilities for FRC.