Log in

View Full Version : My team is switching languages, and we would love help.


Calculated_Risk
12-10-2015, 13:12
Hey, over here at 3570 we are transitioning out of Labview and into Java. We were thinking of taking a Saturday Morning and doing a Java crash course to familiarize our programmers with the language. I was wondering if we could get anyone who had some FRC Java experience to come in over Skype and teach us some of the basics and answer questions. We don't have a concrete date and time yet, but if anybody would be willing to do this (provided it works into your schedule), that would be phenomenal!

Alan Anderson
12-10-2015, 13:54
I'm curious. If you don't know Java, why are you abandoning LabVIEW?

Cel Skeggs
12-10-2015, 15:25
Hi! Team 1540 would love to help! I've been using Java in FRC for the past four years. I'm not experienced at teaching Java itself, but I can help you with anything about FRC Java and WPILibJ.

We're in UTC-7 (PDT), and could be available most weekdays after 4ish our time, or most Saturdays at any time.

Do you have a Google Hangouts account? What specific days would work for you to talk on?

rrossbach
12-10-2015, 18:04
Team 2607 would also be happy to help. We've actually run a few "intro to Java" workshops for teams in our area over the years, so would definitely be happy to share what we know.

We're in PA so just about anytime on a Saturday should work.

Altainia
12-10-2015, 19:24
I'd be willing to assist. PM me

GeeTwo
12-10-2015, 22:00
We've been using java for four years, initially due to our founder (my own son, Gixxy on CD, now in college) and lead programming mentor's (JRWise on CD) preferences. I don't think either one checks CD regularly. PM me and I'll gladly forward to their e-mail addresss, or PM all three of us and I'll let them know to check PMs; both of them love to teach java programming.

cbale2000
13-10-2015, 01:17
I'm curious. If you don't know Java, why are you abandoning LabVIEW?

I'm also a bit curious about this. Seems to me that if it ain't broke you shouldn't fix it until it is.

marshall
13-10-2015, 09:08
I'm also a bit curious about this. Seems to me that if it ain't broke you shouldn't fix it until it is.

Off-season is time for experimentation and learning. Granted, we aren't switching away from LabView anytime soon, we've got other learnin' to do.

cbale2000
13-10-2015, 15:44
Off-season is time for experimentation and learning. Granted, we aren't switching away from LabView anytime soon, we've got other learnin' to do.

Right, but experimenting with other languages is one thing, deciding you're going to switch languages before you have anyone who knows the language you're switching to is another.
I'm even a little curious as to what prompted a switch, for most teams there isn't a whole lot that you can do in Java that you can't do in LabView, and if they don't have anyone who knows the language, what made them decide Java was better?

Ari423
13-10-2015, 19:18
Right, but experimenting with other languages is one thing, deciding you're going to switch languages before you have anyone who knows the language you're switching to is another.
I'm even a little curious as to what prompted a switch, for most teams there isn't a whole lot that you can do in Java that you can't do in LabView, and if they don't have anyone who knows the language, what made them decide Java was better?

I agree you probably want to see how much effort switching will be before you decide to switch. If you see at the beginning of build season that no one knows Java sufficiently well, you should probably stick with LabVIEW for at least one more season.

As far as what you can do with LabVIEW vs Java, there are definitely some things easier to do with LabVIEW and ther things easier with Java. Which one you choose depends a lot on what you want to be doing with the language.

On my team, we have stuck with LabVIEW since our programmers (me) dont feel like learning Java for FRC. In certain parts of the code I could see where Java would be more useful, in other parts I'm glad I'm using LabVIEW. We might make the switch next year, since none of our other programmers know any LabVIEW, but they know non-FRC Java.

Greg McKaskle
13-10-2015, 20:11
Asking for advice and assistance is great approach. If you can get a knowledgable mentor to assist, that will probably more helpful than anything else.

Jumping in and trying to get over the hump on one Saturday is perhaps a bit ambitious, but if you can prep for it, it may be a good start. I'd recommend that you open examples and sample code and read through it a few times before getting to the actual robot. The environment may pose as many issues as the language, so you may find it useful to do some Eclipse projects even if they don't use WPILib or deal with robots. Learn to edit, compile, and debug simple things before jumping into a big project.

Learning a new language, or a new anything, is a prime skill to work on. I don't think I'm in the best position to help you out, but if you have questions or comparisons on the forum, I'll be happy to help.

Greg McKaskle

GeeTwo
13-10-2015, 21:39
I have sent links to this thread to JRWise and Gixxy.

First of all, let me caveat that I have never done what I'm suggesting here, but it seems to me that it should work well. Alas, I happen to live in the woods of Slidell and not the shoulds of theory.

Java is one of those languages that has so much built into it (or more literally has functionality available as pre-written classes) that you may want to approach it as a higher-level library driven languages, and bring in the details as needed. If you just have students plow through Java for Dummies or another bottom-up book or course, they'll get the idea that they need to code everything themselves, or that they'd rather do so for the few percent of CPU efficiencies it will buy. I suggest starting with one of the demo robots available from WPI or screenstepslive, and getting it working first. Teach everyone what's going on where, and why it's important. Make a few changes (implement code for more precise maneuvering, or change the robot driving from front-to-back without any physical modification).

Then, go back and do a generic bottom-up course in java. For each chapter, work one or two of the samples in the text, but make the take-away project a modification to the current code base that uses the content of the chapter. Roughly alternate chapters in the bottom-up book/course with obviously practical things that solve current team problems. Implement video streaming back to the driver station. Include sensor inputs and feedback. Figure out how to do limit switches and encoders. Learn to drive pneumatic systems, servos, and LEDs.

Clem1640
16-10-2015, 19:23
Hey, over here at 3570 we are transitioning out of Labview and into Java. We were thinking of taking a Saturday Morning and doing a Java crash course to familiarize our programmers with the language. I was wondering if we could get anyone who had some FRC Java experience to come in over Skype and teach us some of the basics and answer questions. We don't have a concrete date and time yet, but if anybody would be willing to do this (provided it works into your schedule), that would be phenomenal!

We are doing the same. After 6 years of LabView, we are switching to Java. This effort is programming team led. The issue with LabView (and he driver for this) was long and unpredictable upload limes following programming changes.

marshall
16-10-2015, 20:22
We are doing the same. After 6 years of LabView, we are switching to Java. This effort is programming team led. The issue with LabView (and he driver for this) was long and unpredictable upload limes following programming changes.

Tell me about it. We switched to uploading bananas last year. Limes are very unpredictable.

adammiller3122
16-10-2015, 21:41
Tell me about it. We switched to uploading bananas last year. Limes are very unpredictable.

That may have just made my night! :)

legts
18-10-2015, 14:52
2399 would love to help! Pm me :)

Fauge7
26-10-2015, 16:12
Team 3019 would love to help. We have been using java for 4 years now and have done some pretty advanced features with it. We were the first team in java that figured out how to use vision tracking before first did. Feel free to pm me anytime.

Libby K
26-10-2015, 16:41
1923 runs some Java classes for new FTC students - I'll ask our leaders about Skyping you, but for now hopefully this can help:

https://github.com/aravindkoneru/JavaClass

They have more yet to add as they adapt the classes for FRC this fall, but let me know if you've got any questions for them I can pass along.
(Disclaimer, I am not a programmer by any means, so I'm just passing along a link.)

JesseK
27-10-2015, 15:14
From a career perspective the instant a developer locks him/herself into a single language is the instant the developer's career longevity shrinks to 3-5 years. Programmers even need to learn the different design paradigms (Java/C++ vs Python/Javascript/Web) in order to be successful on the really hard, large and complex products/programs.

Programmers should never stop learning languages. Learn one language extremely well so it's easy to ask about/learn nuances of any given language, then learn the others just well enough to use them. A crash course in Java that then leads to a simple robot implementation (press button -> get reaction) is a perfect exercise in this regard.

With that said, the students are mocking up our Java ecosystem in UML, so I'll get that up when they're done (mid-Nov).

rcdturtle
29-10-2015, 19:24
We tried to compile a program on our robot and it gave us a compile error. What do we do?


C:\Users\Programming1\wpilib\java\current\ant\buil d.xml:69: Unable to find a Javan compiler;com.sun.tools.java.main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:\Program Files\Java\jre1.8.0_65"

GeeTwo
29-10-2015, 21:09
We tried to compile a program on our robot and it gave us a compile error. What do we do?


C:\Users\Programming1\wpilib\java\current\ant\buil d.xml:69: Unable to find a Javan compiler;com.sun.tools.java.main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:\Program Files\Java\jre1.8.0_65"

JRE is the Java Runtime Engine, which does not include the compiler. The compiler is part of the JDK (Java Development Kit). If you don't have JDK, download and install it. Then, (or if you already have JDK), point JAVA_HOME at your JDK installation.

Goldenspeedster
26-11-2015, 15:35
My team (Gear it Forward 2338) just switched from LabVIEW to Java for this past season, and I would say it was definitely worth it. Actually learning Java and understanding the language can be somewhat difficult at first, though. Personally, I started learning Java when I decided to write a scouting program for the team, which introduced me to the basics. I then spent the summer reading through wpi.screenstepslive.com (http://www.wpi.screenstepslive.com) and worked on reprogramming old robots in Java. Some of the websites I found most helpful were the Oracle tutorials (https://docs.oracle.com/javase/tutorial/) and stackoverflow (http://stackoverflow.com).