Go to Post This reminds me of a sports bar where there's a bunch of games on different TV's. Only this is better because it's FIRST. :D - JackG [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 04-11-2015, 22:18
Hankerd Hankerd is offline
Registered User
FRC #5260
 
Join Date: Feb 2015
Location: United States
Posts: 4
Hankerd is an unknown quantity at this point
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   Spotlight this post!  
Unread 04-11-2015, 22:21
EDesbiens's Avatar
EDesbiens EDesbiens is offline
Passionate crackpot
AKA: Étienne Desbiens
FRC #5859 (i)
Team Role: College Student
 
Join Date: Apr 2014
Rookie Year: 2013
Location: Canton de Hatley, QC, Canada
Posts: 297
EDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of light
Re: Preferred Programming Language

Quote:
Originally Posted by Hankerd View Post
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.
In my opinion, Java is the most useful for the real world... But, I think that Labview is a very good choice since you can learn it very fast and that almost anyone, even without experience, can understand and debug your code (true story )...
__________________
Lisa: Players play and managers manage.
Ralph: Do alligators alligate?
  #3   Spotlight this post!  
Unread 04-11-2015, 22:25
Jacob Bendicksen's Avatar
Jacob Bendicksen Jacob Bendicksen is offline
Figuring out what's next
no team
Team Role: Alumni
 
Join Date: Apr 2013
Rookie Year: 2012
Location: United States
Posts: 768
Jacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond repute
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.
__________________
jacobbendicksen.com | @jacobbendicksen

Yale University Class of 2020

Team 1540 | 2012-2016
7 Chairman's Awards, 6 other awards, 2015 Dean's List Finalist, 1 event win, 2 finalist finishes. Thanks for an amazing ride.
  #4   Spotlight this post!  
Unread 04-11-2015, 23:43
virtuald's Avatar
virtuald virtuald is online now
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,061
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: Preferred Programming Language

Yes, there are many threads on this topic in CD. And the answer is always the same: python.
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
  #5   Spotlight this post!  
Unread 05-11-2015, 00:02
Thad House Thad House is offline
Volunteer, WPILib Contributor
no team (Waiting for 2021)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2010
Location: Thousand Oaks, California
Posts: 1,096
Thad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond repute
Re: Preferred Programming Language

Quote:
Originally Posted by virtuald View Post
Yes, there are many threads on this topic in CD. And the answer is always the same: python.
Nah. Visual Basic is the obvious choice

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.
__________________
All statements made are my own and not the feelings of any of my affiliated teams.
Teams 1510 and 2898 - Student 2010-2012
Team 4488 - Mentor 2013-2016
Co-developer of RobotDotNet, a .NET port of the WPILib.
  #6   Spotlight this post!  
Unread 05-11-2015, 00:12
Jaci's Avatar
Jaci Jaci is offline
Registered User
AKA: Jaci R Brunning
FRC #5333 (Can't C# | OpenRIO)
Team Role: Mentor
 
Join Date: Jan 2015
Rookie Year: 2015
Location: Perth, Western Australia
Posts: 257
Jaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond repute
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.
__________________
Jacinta R

Curtin FRC (5333+5663) : Mentor
5333 : Former [Captain | Programmer | Driver], Now Mentor
OpenRIO : Owner

Website | Twitter | Github
jaci.brunning@gmail.com
  #7   Spotlight this post!  
Unread 05-11-2015, 07:14
EDesbiens's Avatar
EDesbiens EDesbiens is offline
Passionate crackpot
AKA: Étienne Desbiens
FRC #5859 (i)
Team Role: College Student
 
Join Date: Apr 2014
Rookie Year: 2013
Location: Canton de Hatley, QC, Canada
Posts: 297
EDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of light
Re: Preferred Programming Language

Quote:
Originally Posted by Jaci View Post
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.
Add that creating a nice visual driver station is really easy!
__________________
Lisa: Players play and managers manage.
Ralph: Do alligators alligate?
  #8   Spotlight this post!  
Unread 05-11-2015, 07:21
jgrindle's Avatar
jgrindle jgrindle is offline
Losing Sleep
AKA: John Grindle
FRC #5122 (RobOTies)
Team Role: Programmer
 
Join Date: Nov 2014
Rookie Year: 2015
Location: Old Town, ME
Posts: 34
jgrindle will become famous soon enough
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
__________________

FRC 2015 Season: Programmer, Electrical, PIDTuner, Safety Captain
FRC 2015 Off-Season: Programmer, CAD Designer, Driver, Drive Team Coach, Electrical, Mechanical, PIDTuner
  #9   Spotlight this post!  
Unread 05-11-2015, 08:07
Ari423's Avatar
Ari423 Ari423 is online now
LabVIEW aficionado and robot addict
AKA: The guy with the yellow hat
FRC #5987 (Galaxia)
Team Role: Mentor
 
Join Date: Mar 2015
Rookie Year: 2012
Location: Haifa, Israel
Posts: 604
Ari423 has much to be proud ofAri423 has much to be proud ofAri423 has much to be proud ofAri423 has much to be proud ofAri423 has much to be proud ofAri423 has much to be proud ofAri423 has much to be proud ofAri423 has much to be proud ofAri423 has much to be proud of
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
__________________
2017-present: Mentor FRC 5987
2017-present: CSA for FIRST in Israel
2012-2016: Member FRC 423
2013: Programmer
2014: Head Programmer, Wiring
2015: Head Programmer, Wiring
2016: Captain, Head Programmer, Wiring, Manipulator, Chassis, CAD, Business, Outreach (basically everything)


  #10   Spotlight this post!  
Unread 05-11-2015, 09:42
Greg McKaskle Greg McKaskle is offline
Registered User
FRC #2468 (Team NI & Appreciate)
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 4,752
Greg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond repute
Re: Preferred Programming Language

Quote:
Some love it, some hate it, and some don't even consider it a language.
This could also be written as ..

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   Spotlight this post!  
Unread 05-11-2015, 10:48
Fauge7 Fauge7 is offline
Head programmer
FRC #3019 (firebird robotics)
Team Role: Programmer
 
Join Date: Jan 2013
Rookie Year: 2012
Location: Scottsdale
Posts: 195
Fauge7 is a name known to allFauge7 is a name known to allFauge7 is a name known to allFauge7 is a name known to allFauge7 is a name known to allFauge7 is a name known to all
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   Spotlight this post!  
Unread 05-11-2015, 10:54
EDesbiens's Avatar
EDesbiens EDesbiens is offline
Passionate crackpot
AKA: Étienne Desbiens
FRC #5859 (i)
Team Role: College Student
 
Join Date: Apr 2014
Rookie Year: 2013
Location: Canton de Hatley, QC, Canada
Posts: 297
EDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of light
Re: Preferred Programming Language

Quote:
Originally Posted by Fauge7 View Post
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.
Same about labview... And I can do it in french!
__________________
Lisa: Players play and managers manage.
Ralph: Do alligators alligate?
  #13   Spotlight this post!  
Unread 05-11-2015, 11:08
jkelleyrtp's Avatar
jkelleyrtp jkelleyrtp is offline
Let's just build a robot
AKA: Jon Kelley
FRC #5511 (Cortechs Robotics)
Team Role: Mechanical
 
Join Date: Jul 2015
Rookie Year: 2014
Location: Apex, NC
Posts: 121
jkelleyrtp is a glorious beacon of lightjkelleyrtp is a glorious beacon of lightjkelleyrtp is a glorious beacon of lightjkelleyrtp is a glorious beacon of lightjkelleyrtp is a glorious beacon of lightjkelleyrtp is a glorious beacon of light
Re: Preferred Programming Language

We have a bad history for long deploy and build times with Labview... What is a better language for quickly changing and using code?
__________________
Cortechs Robotics 2014-Present
Mechanical, CAD
  #14   Spotlight this post!  
Unread 05-11-2015, 11:12
EDesbiens's Avatar
EDesbiens EDesbiens is offline
Passionate crackpot
AKA: Étienne Desbiens
FRC #5859 (i)
Team Role: College Student
 
Join Date: Apr 2014
Rookie Year: 2013
Location: Canton de Hatley, QC, Canada
Posts: 297
EDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of lightEDesbiens is a glorious beacon of light
Re: Preferred Programming Language

Quote:
Originally Posted by jkelleyrtp View Post
We have a bad history for long deploy and build times with Labview... What is a better language for quickly changing and using code?
Labview is simply the slowest... Pick any other code supported by FIRST and you'll see a very big improvement of the time used to deploy and build...
__________________
Lisa: Players play and managers manage.
Ralph: Do alligators alligate?
  #15   Spotlight this post!  
Unread 05-11-2015, 12:50
Hsifeulbhsifder Hsifeulbhsifder is offline
Programmer
AKA: Zaeem Mohamed
FRC #5428 (Breaking Bots)
Team Role: Programmer
 
Join Date: Jan 2015
Rookie Year: 2015
Location: Markham, ON, Canada
Posts: 41
Hsifeulbhsifder is on a distinguished road
Re: Preferred Programming Language

Our team has used both Java and C++, what we found is that Java is great if you don't care about optimizations and stuff that goes on lower level. Java is good if you want to create code quickly but have the code run slowly. When we switched to c++, we had a LOT more work to do but the code is much better when it comes to speed, memory management, and overall control. Java's JVM benefits are irrelevant in this scenario because you are programming for one target. Java allowed us to write bad code really fast and create a buggy, slow, but working robot. C++ allowed us to write really optimized code slowly which runs very quickly and has more functionality. There are somethings we could do with C++ that we couldn't do with Java, such as dynamically loading the code so that we can make changes to the code on the fly without restarting the robot. C++ also allows us to interface directly to the OS as well, so memory management is great. The performance benefit C++ gave us also allowed us to run a separate thread at 200Hz that uses machine learning. However, java is easier to learn for sure.

C++:

Pros:
-Fast
-Control
-More functionality
-Native
-Multi-paradigm
-Good memory management if you are careful
-Not as limiting as java
-Easy interfacing to OS

Cons:
-Hard to learn
-Easy to mess up badly
-Terrible memory management if you are not careful

Java:

Pros:
-Easy for beginners to learn
-Hard to mess up terribly
-Safe
-Garbage Collection

Cons:
-Forced Object Oriented Programming
-Exceptions
-Slow
-No control over memory allocation and deallocation
-Limiting to the programmer
-Forced Garbage Collection
-Sometimes too safe

TLDR: If you are not that experienced, use Java. If you care about lower level control and optimization, use C++
__________________
Hsifeulbhsifder
___________________
"Any given computer program is obsolete, any set of written rules is incomplete"
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 19:21.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi