![]() |
FRC Java or Labview?
Hello all teams,
My team is getting ready for next year and we are thinking on working with Labview and not with Java as it was until now. I know that many ask this before but every case is a bit different. So the team that I am in is exist since 2006 and they always used Java, now, some graduated members are trying to make as use Labview, cause they are not satisfied from the results since the beginning as they say. We never won the local competition, we lost in some of the finals, but most of the times we can't get to the finals stage. I am the programming team leader next year, this is my call if we switch to Labview completely or only the electronics team will use Labview in order to test all the sensors (which is new too). As I see it, Labview is for teams that are new or not really good at this part and want to focus on the robot. So for me it's like going backwards, but I realy want to hear other opinions. Thanks in advance :), Nimrod #2231. |
Re: FRC Java or Labview?
I can't comment really on the specific pros and cons of Labview and Java, but I will say from general experience, I almost always prefer the beast I know to the beast I don't. This is especially true for FRC because you have so little time to work through the transition. If you start learning Labview, now it will definitely be better, but I can almost guarantee you will have some transition related difficulties during build season. However, the benefits of switching may outweigh this for you. Just something to keep in mind when deciding.
|
Re: FRC Java or Labview?
Personally, I like that Java deploys much faster than LabVIEW (at least, how long it took back around 2011). This makes it much less stressful to make changes between matches.
|
Re: FRC Java or Labview?
Quote:
|
Re: FRC Java or Labview?
Quote:
Also... Quote:
|
Re: FRC Java or Labview?
Hello,
I can almost guarantee the reason why you are not winning has nothing to do with your programming language. More advanced controls can be done in either and I know for sure world championships have been won with robots running on both Java and Labview. The real question should be what do you and your fellow programmers know better. If they know Java better use java. If you know Labview better use Labview. I watched a match of yours from this year. To start out I noticed you lacked on autonomous mode. That is probably something the programmers on your team should focus on. From there vision processing would be a good thing to learn. It looked like your team had a mechanically solid robot with a nice shooter but without vision processing, cross heirs, or a flashlight aiming was next to impossible. Also are you a school based team? If so what language does your school teach. If it is Java I recommend staying with Java for sustainability purposes. Hope this helps |
Re: FRC Java or Labview?
Stick with what you know. Simplify your goals. A robot that can do one thing really well is better than a robot that can do many things fairly well.
Changing your programming language, unless your team knows how to program in LabView better than Java, will only hinder you. Code is one of the last things to affect how a team performs on the field. |
Re: FRC Java or Labview?
I would keep with Java, especially if your school offers a programming course. Many students who already know programming, at least on my team, were turned off by the visual LabView interface.
If you're not able to accomplish robot goals in Java, switching to LabView may not help. Are your problems with your language or with lack of practice/timing? |
Re: FRC Java or Labview?
Quote:
The electronic team will test the accuracy of the sensors... Quote:
We have been focusing on the vision part after the competition and made the robot able to aim and shoot automatically, which is not working 100% good but I am sure that we can get better at it. At school I am learning Java, but after my grade they started teaching c# which is quite the same, but they are not all in the same level (we have two kinds of classes, one is 2 years learning and one is 3 years learning) And there are also pupils that did not chose to learn C# at school and you need to teach them from the start. And to make me more clear to all, I am the only one on my team (except from the capten who was on the programming team with me last year and we learned from our team leader) so I need to teach all of the new members java, wpilib and git, which takes alot from me too. Thanks to all who are commenting I am really trying to use your tips. Thanks! |
Re: FRC Java or Labview?
Quote:
C# is similar to Java in that both are object-oriented text-based languages, and the sytax and logic flow is very similar. If you find that a significant number of incoming members have taken C#, then maybe sticking with Java is for you. If not, Labview is a bit easier to deal with. How are you testing the accuracy of sensors? What sensors do you use right now? |
Re: FRC Java or Labview?
Quote:
And one thing I forgot to say is that they are not investing enough in the trainings and everyone it is a bit different in their understanding. |
Re: FRC Java or Labview?
Quote:
|
Re: FRC Java or Labview?
Quote:
The alumnus knows Labview , he is using it for the last 3 years or so and I have no problem learning programming language from the internet. Done it in c# and java. |
Re: FRC Java or Labview?
Generally I'd say that going with Java is optimal if your team feels they have a basic understanding of programming in general. The main pros for me is:
1) it makes it a lot easier to exploit version control since it's text based (you can see what was added/removed on a commit-by-commit basis) 2) WPILib encourages a clean design pattern with its command callback structure. But that's subjective. Some people will likely disagree. Honestly our team had many students who struggled with learning LabVIEW. This was especially true for those who had already had some exposure to other C-like languages. LabVIEW's wiring and VIs can become a bit difficult to decipher when the code becomes complex. LabVIEW does make UI design pretty easy, though, and it integrates very well with the Driver Station. Of course, you can use LabVIEW for the driver UI and Java for the robot. Regarding improving performance, I don't believe moving from Java to LabVIEW is likely to accomplish this unless your Java code is designed in a very inefficient way or your programmers are having enormous difficulty grasping how to use it. Programming is sometimes (often?) asked to make up the difference for shortcomings from design and/or implementation. Changing languages won't fix that. Good game strategy, well thought out robot design, proper fabrication and assembly, appropriate use of sensors, and a good UX can mean huge strides forward for robot performance. Only the appropriate use of sensors and good UX is within the realm of programming. It is not language dependent at all. |
Re: FRC Java or Labview?
Disclaimer- my experiences with LabVIEW are not exactly up to date, as we switched to using C++ a few years ago.
There is, in my opinion, one truly great thing about LabVIEW, and that is the level of support it is given not only by FIRST but also by National Instruments, where no similar support is offered for Java, C++, and the like. It is true that it is very easy to get started with LabVIEW, meaning that yes, initially, you will find it more streamlined. However, it is significantly more difficult to use for custom functions or more complex/ advanced functions than the other languages are. As well, your team will often find the increase in deployment/ compile times to waste time when it is possibly needed most (robot testing at competition/ bag and tag week), which could possibly have the reverse effect of what is intended. No offense meant, and I will not pretend to know the situation or personalities of you or any members of your team, but to me it sounds like your mentor is making a push for LabVIEW because that is the language he has more experience with and prefers more. This means that yes, for him, it must be a faster solution than Java, so of course he wants to pass that onto the team. However, you should remember that he isn't the one writing the code; you guys are, and should use what you think works best and fastest, not anything else. In addition, Java will prepare more people for likely situations in the workforce, especially because Java is so prolific, and using it can give students very valuable life/ career experience. Those are just my $0.02 (or $2.00, really, i wrote a lot. Sorry) |
Re: FRC Java or Labview?
This is a classic debate on CD.
As many of the others have stated on this thread, you should go with the language that you are most comfortable with and further your efforts in that. But I do want to dispel one notion about Labview as though it is some kind of a regression. From what I have seen, labview in FRC is atleast as powerful as Java is. Yes, it has a low entry point making it very accessible to newer teams and programmers but it also has a very high skill cap. Several veteran teams use it and have had no trouble achieving what any Java or C team has. I would also like to point out that Labview is used in many applications beyond FIRST such as indisutrial automation and testing. While Java is the more popular and more widely used language in the real world, it is also undeniably been on the decline. That aside, there is no difference in what you can achieve with Labview or Java in FRC and the choice should be based solely off of which your team has the most experience with and is more comfortable with. I see that while you all have used Java thus far, your mentors seem to be proficient in Labview. I know that mentor expertise is the deciding factor for many teams in their choice of language so I urge you to keep your options open. |
Re: FRC Java or Labview?
I think that you can be successful with either language,
Our team uses LabVIEW and we keep using it because it was used since our rookie year and we gained experience with it. I think you should consider the following things in your decision: 1) How many students on the team have already had a season using Java? Experience is something you should maintain and a transition may be a struggle. 2) How many new students came with no programming experience? As far as I know it's much easier to teach LabVIEW to new programmers. 3) Are there any mentors on the team that know Java or LabVIEW already? Mentor support is always good, if you have a mentor that knows Java you should consider staying. 4) What programming languages does other teams use around you? Getting support from other teams around you can help solve problems faster, even during build season. Hope it helped, בהצלחה :) |
Re: FRC Java or Labview?
LabVIEW compile times are longer, but not prohibitively so. It only takes a matter of seconds to put compiled code on the robot.
LabVIEW seems harder for people who are used to a procedural language like C++ or Java. That's usually because they are trying to approach it using what they already know. Unfortunately, what they already know is largely inapplicable to dataflow languages and actually gets in the way. If you start out with the idea that you know nothing, you will find LabVIEW much easier to learn and use. LabVIEW is simple to start out with. It is also very powerful. Its inherent parallel nature makes it easy to do some things which are difficult in other languages. On the other hand, typical object-oriented features are not as deeply baked in, so common OO constructs aren't as simple, though again thats mostly an issue for people with a good background in such languages. |
Re: FRC Java or Labview?
Both Java and Labview (and C++, of course) have competed at the highest levels. The question is what is right for your team? How many programmers already know each language, how many mentors are comfortable in either language, and how many mentors are willing to learn the other?
We have been a Java team from 2012 to 2016, but we're looking at only one student who's done any significant programming being on next year's team. Our steady programming mentor for the first five years is backing out a bit (maybe more) due to marriage, moving, and a new job that will send him to sea in various places around the world.. If our new programming mentor wanted to switch to LV, this is probably the year we'd do it. Repeating the bottom line - which is better is much more dependent on your internal capabilities than any abstract "betterness" of the program language. The only considerations outside your team should be online support. LV, Java, and C++ all have decent support on CD, but perhaps one or two of these languages has better local/hands-on support from nearby teams. Play the ball as it lies. |
Re: FRC Java or Labview?
I've been programming in LabVIEW for 4 years now, and would like to give you some technical details about it. As for Java, I'm actually learning it as I speak, so I can't be of too much help in that. Sorry.
Pros: LabVIEW looks more simple for beginners because of the graphical aspect: wires connecting to blocks, drag-and-drop, selecting stuff by drawing a box around them, all of that is more familiar to people with no prior programming experience. LabVIEW is amazing at running different parts of code in parallel. There is A LOT of support for LabVIEW on Chief Delphi! It is an industry-standard programming language. You can drag-and-drop other teams' LabVIEW code directly into yours. LabVIEW has many nice tools to help you when programming. For example, to help with following data transfer inside the code, there is a highlight function that highlights the data flow in ordinal fashion. Now, LabVIEW does come with quite some quirks and annoyances... Cons: LabVIEW and trackpads DO NOT MIX! It basically requires you to have a mouse. LabVIEW's version of vision processing has a bunch of lag (about a half a second). The LabVIEW application has no tab interface; in other words, if you have 5 VI's open at the same time, you will have a messy conglomerate of 5 windows on your screen that you will have to switch between. LabVIEW looks like a nightmare for those who have prior programming experience in a text-based language with its wires going everywhere, random blocks and boxes, etc. Merging two VI's in LabVIEW is literally THE WORST! A VI-merging application is included in the FRC LabVIEW Suite, but it takes at least 30 minutes just to merge average LabVIEW code, and it may not even do it just the way you want it to, either. It takes LabVIEW quite some time to deploy code to the robot. I had a weird issue in which the code would not deploy correctly, and in the end, would display a connection issue, so I would have to almost always deploy the code twice or even thrice. Once you begin making more advanced programs, LabVIEW code becomes more and more complex. For example, my team this year has two cameras on the robot for driver vision, and we wanted to be able to switch between the two camera views at the push of a button. To do that, we had to dig reeeaaaly deep into the existing code infrastructure (roughly seven layers of SubVI's) and change several components. It took several hours of debugging just to make it work! Debugging in LabVIEW can be time-consuming, mind-boggling, and overly complicated overall. Once again, I'm sorry that I can't be of too much help when it comes to Java (yet...). If you have any questions, I will reply as soon as I can. Hope this helps! |
Re: FRC Java or Labview?
Thank you all for your answers, i really appreciate it.
I have one question, what support does Labview have with Git? Or maybe there are other source control for it? |
Re: FRC Java or Labview?
We have been a labVIEW team of late and are planning on switching to Java, for two reasons.
The primary reason is a direct response to your last question. Using LabVIEW with version control is difficult. If you have a single developer or only a single development machine, LabVIEW has an integrated versioning system you can enable which will provide the "time machine" aspect of version control without any merging capability, which works effectively. Once you want to have 5 different people working on different sections of code, we have found it difficult (not impossible) working in LabVIEW. In particular LabVIEW has a tendency to "change" VIs (like files in Java) whenever they are opened, even if you did not make a conscious modification. If developers are not exceedingly careful with their commits GIT (or any other optimized for text versioning system) will shrug and force you to handle the differences yourself. LabVIEW does come with a reasonably useful VI diff/merge utility which can be integrated into git/subversion workflows; however, we have had trouble properly utilizing it, especially compared to the ease with which git can handle merging text files. Our second issue with LabVIEW has also been mentioned above -- longer/unpredictable deployment times. This is not the compilation process, but rather the way in which code is transferred to the RIO. We have experienced numerous communication failures, resets, incomplete deployments. I suspect this may have something to do with portions of our code running in fast loops, as I do not see the problem on freshly imaged RIOs or teams using very simple configurations. That said deploying new code should not be so significantly impacted by previously deployed code you are trying to replace :-) Regardless both languages are capable of developing advanced robots and each has their own advantages (e.g. it is very hard to beat LabVIEWs ability to graph/visualize data on the fly during development). Good Luck |
Re: FRC Java or Labview?
2016 was our rookie team and we had one programmer that ;learned LV on its own with help from a couple other local team. He did pretty good considering that he was pretty much on its own. Just graduated and we are now starting from scratch again.
I reviewed some data from FIRST and found that of all robot that connected to a field last year, 49% use Java, 35% use LV... remaining are C++ and a few Python.... I decided to check out Java... i love the Eclipse interface. I used Robotbuilder successfully to build a few small subsystems and so far i really like the test mode using the java Smartdashboard. Just that for us justify making the switch. Our students are already learning basic Java programming as they are expecting the switch. I did not successfully control a test robot yet... but i am confident that i can make it work... finding a lot of resources online. Hoping this will be a good move... only time will tell... |
Re: FRC Java or Labview?
Quote:
|
Re: FRC Java or Labview?
Quote:
|
| All times are GMT -5. The time now is 20:29. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi