Can anyone who has a pro or con for java,c++, or labview for FRC please post them here along with your team number and the programming language your team uses
Thanks
Can anyone who has a pro or con for java,c++, or labview for FRC please post them here along with your team number and the programming language your team uses
Thanks
If you do just a bit of searching, you’ll find hundreds of posts about this topic. They’re worth reading.
This might help you out:
But to answer your question 1523 used:
2005-2008 C++
2009-2010 Java
2011-Now Labview
Labview has been the easiest to teach
Use what you know how to. If you need to learn one, LabVIEW is widely supported in FRC, but Java is also popular due to its use in AP CS classes. Despite C++'s lesser popularity, we use it because our mentor and I are most comfortable with it.
I thought that C++ was more popular than java with FRC teams
C++ appears popular due to it’s increased use in the upper echelon, and you’ll find no lack of teams who run C++ on these forums. However, connor hit the nail on the head with those descriptions, which also describes why my team is going down the C++/C road.
If you’re a starting team with no programming experience whatsoever, LabView is the best choice because of the comprehensive documentation available.
If you have students with some programming experience, Java might be more useful. Most computer programming classes in high schools teach in Java. It’s a bit more flexible than LabView, it’s easier to write very complex programs, and once the students leave FIRST Java and C++ will both be more useful later on than Labview would be.
If you have a team with a lot of time and resources, C++ is worth a shot, though I don’t necessarily think in the context of FRC that C++ is necessary. C++ is the “fastest” of the three, but the cRIO (and definitely the cRIO II) is fast enough to handle any language without problems. Any vision processing should be handled on the driver station, so that shouldn’t even be an issue. C++ is harder to debug than Java, and Windriver is a … well … pos. Overall it’s much easier to produce working code in Java. But it does have a few advantages that might make up for it if your team has the ability to debug all the issues.
While this might be true for “desktop” programming (the kind taught by most Comp Sci programs), I respectfully disagree.
LabVIEW is used a lot in industry for what it was originally designed for - instrumentation and testing. Many test setups I know of use NI hardware and run LabVIEW code. LV is an important skill for many engineers who aren’t CS’s.
LabVIEW is also an extremely powerful language. There is nothing that I know of that is simply impossible (although a few things are tricky). The FIRST libraries are also fairly easy to use from a users perspective (although there are a few design quirks that are clear marks of different code authors not collaborating closely enough - “To Digital Source” for encoders is a great example).
I also don’t see any reason why Java or C++ would be harder to debug than the other - Your basically limited to printf’s/language equivalents in any form, and most FRC operations don’t touch pointer math so you shouldn’t get segfaults with no explanation (which are almost always the worst to debug).
Fair enough, I’m well aware that LabView is very well-used in embedded and analytical systems, but my point was that for the majority of students a more conventional programming language would probably be more useful. Java, C++, and C# are 3 of the most-used languages on the planet, and they’re all quite similar in many respects.
As for debugging, I probably generalized a bit more than I should have, though Java does have a few extra debugging features such as printstacktrace()
There are dozens of other threads out there, some discussing the finer points between languages. But to answer your question:
We use Java. If we were to pick a second, we’d pick C++, and Labview last. Our mentors are fluent in Java, so we use Java. Personally, the write, debug, repeat cycle is much faster for me on Java, but I haven’t used too many of WindRiver’s amazing features yet.
JAVA:
C++:
Labview:
The easiest way to conclude, is to say that there is no BEST programming language. As with life, you use whichever language gets you the maximum yield with the resources you have.
This is from my experience. I am not a programmer for the team but have outside experience programming and am currently working with our programming mentor. Keep in mind this is a general overview and my experience is limited.
3081 has had a weird situation (a year or two out of our four previous years, I think) with programming in both LabView and C++ because our programmers weren’t agreeing on which one to use. This year, we’re switching completely to C++.
We don’t use Java and haven’t used it recently and I don’t have experience with it.
LabView is easy to learn and use, but it can be limiting if you want to do something fairly complicated.
C++ is very hard to learn and master, but once it is mastered (or at least understood enough to use properly), you can do more with it.
All in all, if you’re a beginner, use LabView. If you have some experience or a mentor that does, use C++. I’m new to C++ and while it’s a great language, it’s also a great headache.
Hope that helped somewhat.
Catherine
Honestly, there isn’t a huge difference in the language you use.
When you get down to it, Computer Science and Software Design is the same regardless of the language you use. Of course, you can’t jump into things right away, but for any student going into CS or ECE should know be well versed enough in Computer Science or Software Design to overlook the language and to know the concepts. Example: I only used Java in high school, but in the past semester, I’ve had to learn MATLAB, LabVIEW, and C for my courses as Computer Engineering major. It honestly was not a big deal at all, as the concepts were the same, just the way of writing it was different.
That being said, are your students well versed in computing or are they not?
If they are, then the language used isn’t a big deal. The differences in processing speed and power are negligible. Documentation on all of the languages is pretty expansive.
If your students are new, starting them on something like Java (If you have mentors experienced with TEACHING computing concepts or if the school has a Computer Science class) or LabVIEW(very simple to pick up initially, though frustrating for veterans used to text-based coding) are recommended. Java is very very easy for any student to learn due to the thought process behind the Object Oriented programming setup in Java. LabVIEW uses a GUI and drag-and-drop interface. C++ is for people with knowledge, but once again, if the students understand the basic computing concepts, any programming language can be used to no detrimental effect.
Thanks everyone for the input