|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Preferred Programming Language
Our team is trying to decide what language to program our robot with. We are a new team and started last year with LabView, but we have all new team members and thought we should figure out what will be most beneficial in the future for the students - like when they get out in the real world and want to use the programming skills they learn in FIRST. Would love to hear other's opinions of what we should teach the team that will help the team now, and keep helping them after their FIRST experience.
|
|
#2
|
|||||
|
|||||
|
Re: Preferred Programming Language
Quote:
)... |
|
#3
|
||||
|
||||
|
Re: Preferred Programming Language
I think the usual answer is 'whatever language you know best/can learn most easily,' and this holds true here. We've had a lot of success with Java, but it's really more about how well the programmers know the language rather than the language itself.
|
|
#4
|
||||
|
||||
|
Re: Preferred Programming Language
Yes, there are many threads on this topic in CD. And the answer is always the same: python.
![]() |
|
#5
|
||||
|
||||
|
Re: Preferred Programming Language
Quote:
![]() In all seriousness, what do your mentors know? If you have a mentor that has a good amount of experience in one of the languages, I would highly recommend picking that one. If you don't have any programming mentors, I would personally recommend keeping LabVIEW, and it is usually the easiest to teach and debug in the time you have. |
|
#6
|
||||
|
||||
|
Re: Preferred Programming Language
Instead of the whole "do what you know", I'm going to try and answer this objectively. After all, some people are just looking to expand their knowledge -- nothing wrong with that
![]() C++: Fast, efficient, but a bit of a steep learning curve for those who are new. Doesn't offer as much freedom as other platforms like the JVM, but is a good language for those who don't mind the extra work Java: Semi-fast, not very efficient, but provides a good tradeoff with the amount of freedom the JVM gives you. Although the JVM eats up RAM like there's no tomorrow, there's no denying it's easy to prototype for and is quite nice for any skill level. You also get a lot of freedom with the language you choose, as Scala, Groovy and Clojure all fit under this umbrella. Python: Although unofficial, the Python support for FRC is first-class. Testability, wonderful documentation and easy prototyping make it the language of choice for many. The syntax is easy to pick up for new programmers, but remains a powerful tool, although less speedy than the JVM and C++ alternatives. LabView: Probably the most controversial language in FRC. Some love it, some hate it, and some don't even consider it a language. Although it's visual based, it runs quite well on the RoboRIO thanks to National Instruments. Doesn't give you the same degree of freedom as other languages, but a nice alternative for those who aren't quite ready to learn a full language, and who learn better visually. Hopefully that list explains (almost) everything. If you want my personal, subjective opinion, I've taken a liking to using multiple languages. Java for control structure, Scala for dealing with data. |
|
#7
|
|||||
|
|||||
|
Re: Preferred Programming Language
Quote:
|
|
#8
|
||||
|
||||
|
Re: Preferred Programming Language
My two top languages would be Java or C++. Java has a lot more resource to find on it, so it makes it a much easier learning curve. C++ on the other hand doesn't have as much resources on it, but it can be very similar to java. I think the bigger thing is, is how much time do you have to learn. If you have little time, I would suggest going with Java. If you have a lot of time, I would try C++ by following the examples. Overall I'd say Java is the better language for beginning teams.
John |
|
#9
|
||||
|
||||
|
Re: Preferred Programming Language
If you are looking for a language that is commonly taught in schools and would be easier to find a mentor who knows, you should probably stick with Java.
If you do not anticipate finding a programming mentor, I would stick with LabVIEW. It is (in my opinion) by far the easiest language to be bad at and still end up with a working robot. And once you get good at it (which doesn't take very long), you can do all of the same level stuff as you can with Java. I entered FRC with very little programming knowledge. My first year as head programmer, using LabVIEW, we barely had a driving robot. by my second year, still with LabVIEW, we were able to do PID control, path planning, etc. (Note: this was on out test bot, not on our competition bot) tl;dr I would highly recommend LabVIEW for any rookie head programmer without a programming mentor or knowledge of another language |
|
#10
|
|||
|
|||
|
Re: Preferred Programming Language
Quote:
Some love it, some hate it, and some don't quite get the definition of a computer language. But the advice from all who have posted is on point. My 2 cents. Discuss it with a mentor. Develop a plan. Enjoy the opportunity to learn something new. Greg McKaskle |
|
#11
|
|||
|
|||
|
Re: Preferred Programming Language
My 2 cents, plenty of teams on here will be able to help you with java/c++. I personally would love to mentor a team If you decide to use java.
|
|
#12
|
|||||
|
|||||
|
Re: Preferred Programming Language
Same about labview... And I can do it in french!
|
|
#13
|
|||
|
|||
|
Re: Preferred Programming Language
All depends on your teams previous experience, my team has used tabview for the past few years, the pros is that it is easier to get pid loops up and running and that vision processing is easier (maybe?) but the cons is that find it harder to read and there is a bit of a learning curve, and the fact that virtually nobody learns it before first and will virtually never be used in the outside world ,
pros to java is that everybody already knows it, so no learning curve, global classes (aka "subsystems") are easier to use, most of the better teams use it, and it is easier to read, cons are that vision processing is fairly hard |
|
#14
|
||||
|
||||
|
Re: Preferred Programming Language
Here's my opinion:
I love LabVIEW. I learned it by mentoring FRC and have used it at NASA for data acquisition. It also made some college lab and project stuff a bit easier to accomplish. It's a great language to learn for robotics and if you get the right job, you will definitely be using it. Big companies use it besides NASA. C++ is my second favorite. C and C++ are very powerful languages that are used from small, low powered, embedded applications (robotics), to very high-powered supercomputers. It's probably the most difficult language to learn, but also the most versatile language to choose from. Java hasn't been useful in my experience in electrical and computer engineering. I learned Java for my database class, but haven't had a need to use it since then. If you're into web development or Android development, then it'll be useful. Embedded... yea... it'll run on microprocessors, but not as common to see as C++. Python is the most significant upcoming language. Since I got to college in 2008, it seems its use has exploded. I dabble in Python more than any other language right now. It was shoved down my throat in the past few years of college and I use it everyday now. It's not officially supported by FIRST, but I bet it will very soon. It's also pretty easy to learn for the first time (harder to learn when you're taught C++ because you keep trying to do things the hard way). MATLAB and Simulink are also very useful collegiate and lab based software solutions... but NI and Mathworks aren't the best of friends (competing products). I used a ton of Simulink in graduate school and I know NASA used it quite a bit for modeling and data processing. |
|
#15
|
||||
|
||||
|
Re: Preferred Programming Language
Quote:
If you major in computer science, you'll be very familiar with text based object oriented languages, but the large majority of CS majors (at least the ones at my school) will never have done any significant work in LabVIEW. I know people who have been offered paid internships that led to jobs just because they were familiar with LabVIEW and most other applicants weren't. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|