Go to Post Thanks to everyone who made the regional possible - I know my team had a blast and I'm pretty sure most other teams did too. - Steve Howland [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

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #15   Spotlight this post!  
Unread 06-03-2012, 13:12
ianonavy ianonavy is offline
Programming Mentor/Alumnus
AKA: Ian Adam Naval
FRC #3120 (RoboKnights)
Team Role: Mentor
 
Join Date: Dec 2010
Rookie Year: 2008
Location: Sherman Oaks
Posts: 32
ianonavy is an unknown quantity at this point
Re: Advantages of each programming language

These advantages and disadvantages will differ according to your experience.

Java
Advantages
  • Can be programmed on Windows, Mac and Linux.
  • Forces good programming patterns such as object-orientation.
  • Simpler than C++.
  • No explicit memory management. You don't have to worry about handling specific memory addresses.
  • It's the AP Computer Science language, so if any of your students are taking that course, you don't have to learn a new language.
Disadvantages
  • Incomplete vision tracking APIs.
  • No explicit memory management. (Yes, this is both an advantage and a disadvantage.)

C++
Advantages
  • Executes and compiles much faster than LabVIEW.
  • Has complete vision tracking libraries.
  • Explicit memory management, so you don't ever have memory leaks if you know what you're doing.
  • Most popular, so more teams are likely to be able to help you at the competition.
Disadvantages
  • Syntax can be confusing for new programmers.
  • Requires a Windows PC to upload code.

LabVIEW
Advantages
  • Data flow is more intuitive than object-orientation in other languages.
  • Arguably easiest to teach among the three major supported languages.
  • Has access to the most NI vision libraries.
  • Very quick debugging tools. You can probe wires in the code while you're running it to see what the problem is very quickly.
  • Garbage collection means no explicit memory management.
Disadvantages
  • It's likely you know text-based languages already, so it could be harder to learn the data flow paradigm.
  • Only runs on Windows PCs.

Python
Advantages
  • You do NOT need to restart the cRIO to upload code, which is great for rapid development.
  • Uses the C++ cRIO image, so you can switch between the two if need be.
  • Simplest syntax of all of them. It's quite beautiful, and it's very easy to teach.
  • You can develop on any platform in any IDE.
  • Access to all of Python's fantastic modules.
Disadvantages
  • Depending on your IDE, a syntax error can go unnoticed, so you have to run tests that execute every line of code.
  • This language is not supported, so you won't get much help at the competition.

Honestly, write your programs in the language with which you are most comfortable. If you're caught between two or more, figure out which is the best for what you're trying to do. LabVIEW is much better for vision tracking than say Java, but if you need Java's higher level features, go for that.
 


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 01:22.

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