|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
Re: Programming Advice for Newer FRC Team?
Our team has been using LabVIEW for the last few years but this summer we have been trying to make the change to C++. Somewhere in the process it rendered one of our team laptops unusable for sometime(I don't know the details on what it was), i'm not saying don't use it, but be careful.
|
|
#2
|
|||
|
|||
|
Re: Programming Advice for Newer FRC Team?
Our team is/was in a similar position. Ultimate Ascent was our first season, and we were a LabView shop. I'm not on the programming team, but as I understand it, we stayed away from Java/C++/et al. and close to LabView because LabView seemed simpler and the other languages seemed more daunting and a bit lower-level than we needed.
There's already a load of better advice above this post, so I'll keep this short. Whichever language you decide to use, you need to have a mentor with experience in that area. There are forums, IRC channels, etc. that you can go to if you need help, but it's not the same as having someone with specific experience on-site. Especially with the lower-level and more complex languages like C++. In short, you really need someone on the team who's been bitten by everything your programming language can bite you with. |
|
#3
|
|||
|
|||
|
Re: Programming Advice for Newer FRC Team?
We use Java because that's what the mentors prefer and because the AP classes use Java.
An FRC Java environment has a couple more benefits too -- it's (low-effort) cross-platform (Linux or Mac users can easily integrate into the team), and a simple Netbeans+plugins IDE setup is 10 min or less depending on your download speed ![]() |
|
#4
|
||||
|
||||
|
Re: Programming Advice for Newer FRC Team?
In my experience with programming FRC robots I have found LabView to be the easiest language to pickup if you have little/no experience. The interactive tutorials and exmaples that teams and NI have posted will allow you to get your robot up and running reliably pretty fast. The one downside is that NI LabView tends to not be as powerful as C++/Java.
To put it in perspective you generally see LabView being used for testing in the Manufacturing industry whereas you will see Java/C++ used more in the Development process for the Engineering/Defense Industry. Also as a note most high school classes that give college credit (Known as AP classes in MN) will teach students Java. With the knowledge I learned in FRC I was able to take the java AP exam without actually taking the class in high school. |
|
#5
|
||||
|
||||
|
Re: Programming Advice for Newer FRC Team?
In terms of the direct function of the program, what can you do in C based languages or Java that you can't do in LabVIEW? I would say LabVIEW is just as "powerful" as any text language, but it takes some knowledge to know what to use LabVIEW for and how to do it in LabVIEW. In FRC, LabVIEW works well for programming for the robot, and can be simple or complicated depending on how you use it.
|
|
#6
|
||||
|
||||
|
Re: Programming Advice for Newer FRC Team?
Quote:
For the record I much prefer LabView as a programming language overall but there are some applications I would rather write in C++/Java. For me LabView makes programming a little more creative and fun but that is just my 2 cents. |
|
#7
|
|||
|
|||
|
Re: Programming Advice for Newer FRC Team?
We used LabView for programming in past years and have enjoyed it. This year we will be switching to C++. I find that LabView is good for creating robot code due to its intuitive nature concerning machinery, but a downside is longer compile times and its contrasting nature to other languages. In the end, though, it is your choice and you may want to ask the mentors what they think you should do, seeing as they all have prior experience.
|
|
#8
|
|||||
|
|||||
|
Re: Programming Advice for Newer FRC Team?
There's a lot to say about all three languages.
Some people argue Java or Object-Oriented programming is better to learn. I disagree. I don't think anyone can truly learn programming by learning only one language/paradigm. A very wise man once said that the most important programming language you learn is your second. When you learn the first language, you learn to design software around the constructs, syntax, and programming practices of that language. When you learn your second (ESPECIALLY if it's vastly different language paradigm) you learn to apply the design skills much better and choose the best method of implementation for a given project, and it really opens your mind to other potential methods for writing software. We've chosen LabVIEW for various reasons. We prefer the language and diagnostic tools, and feel that they outweigh the downsides that there are. Jim and I both work heavily with C and model-based programming (I do a TON of simulink now), so it all makes sense to us. All three languages are used heavily in the 'real world'. While it might be true that LV is less commonly used for production software (it's used EXTENSIVELY for prototping, one-off test pieces, and research), Simulink and the similar autocoding languages are used heavily for embedded controls stuff. Whatever you do, don't restrict your thinking to only one method of writing code. OO is not always the answer. Sometimes it is. Learning two dissimilar languages will teach that. @Ilovepineapples, all of the defense work I've ever done was in C and Simulink (autocoded to C). We just didn't have the CPU resources to throw away on garbage collection, dynamic memory allocation, and interpreted code. On a related note, automotive safety standards specifically prohibit dynamic memory allocation, heaps, and reuse of memory for different items (aside from the main stack), so Java is ruled out entirely. I haven't read a military vehicle safety standard, though, maybe they do crazy things. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|