This just came up in Google Reader; after a quick search I couldn’t find it posted anywhere here and thought it might be interesting to many CD’ers:
That’s very interesting. Java on FIRST robots… not bad. Its really good to get options out there to students, and the more programming languages able to run on FIRST robots the better it is for students.
Let the C++ vs Java rivalry begin.
This is not related to SUN but it’s so welcoming to see some familiar pits in the article pictures!
Note to self: Review Java…
I hate Java (its a religious thing though, no actual reason), but this is pretty cool. Now if they would just get rid of vxWorks and let us use Linux on there we’d be really set…
I think this move will attract a lot of people, especially in schools that offer computer science courses in Java. There are probably quite a number of them, too, since AP Computer Science works in Java.
I’m going to speak with my school’s computer science teacher. Maybe she can get her students involved with the team also!
Maybe we can also get the College Board to work with FIRST to make a new case study revolved around the new library. Who’s with me?
I think that Java working with devices is a great step…I personally do not like Java at all but it’s nice to see how popular FIRST has become that you can even program in Java now. It might bring an increase to the amount of students that join robotics teams.
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 concur, the majority of AP and IB schools teach computer science in Java.
Wow - This dovetails very nicely with the Java client I have been developing for the 5th Gear FRC robotics simulator - That Java client replaces human players with computer control of one or more of the simulation’s virtual robots - Blake
I think it’s great to offer alternative platforms for development. With that said, I think Sun and or WPI will need to offer some good examples in Java before it will really catch on in our community.
I also hope that they release it before fall like their website says. Or at least release it in beta stages (they obviously have somewhat of an alpha product as they had a robot running on Java at CMP).
It was reasonable for NI and WPI/WindRiver to release their programs and languages in the fall because nobody had the cRIO until then. But now that teams have a cRIO, they can beta and submit patches or feedback during practice in the summer.
As a teacher of AP and IB computer science and an FRC advisor, I like this opportunity a lot. It will make the learning curve for new programmers much less steep on the average, since the overwhelming majority of high school CS classes are Java based. While there are things I don’t like about it, the way Java handles events and exceptions will make robot programming much easier for students to pick up. In particular this should be a good avenue for making sensors more easily used.
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.
This has been mentioned a few times. Can you elaborate on what the 30 second sequence is, and when it becomes a big part of the development cycle?
One mentor came by the booth and wasn’t aware of the three button reboot, so they were power cycling the entire robot each time they deployed. Is this a similar situation? Or are you unable to simply reboot the controller? Or is your controller taking 30 seconds to reboot?
Greg McKaskle
Hang on, let me get this straight…
Is Labview still available to teams to program the robot?
Is it that Java is replacing Labview or we’re just gonna’ have a 3rd programming language available?
I believe Java is another option for teams, along with LabVIEW and C++.
Correct. They are adding an option, not replacing them.
However, at one of the feedback sessions they did mention considering dropping C (not C++, just C) support: Only one team reported using it, and they were planning to move away from it any way.
It’ll be interesting to see what happens here since Sun is now being bought out:
Whenever a new owner comes in, a lot of old projects within a company being bought out can get axed rather suddenly. Hopefully this isn’t one of them.
Heh, the cRIO is getting complicated :ahh:. So long as the other two languages aren’t glitched by adding another one in, I see this as an opportunity for other teams. We’ll stick with the C++ core with a Java display on the front-end. That hits all of the strong points on our team.
I can’t wait to have the “But there are no memory leaks in Java!” discussion…just wait, it will happen.