View Single Post
  #3   Spotlight this post!  
Unread 03-10-2011, 23:32
Jim Zondag's Avatar
Jim Zondag Jim Zondag is offline
Team Leader
FRC #0033 (Killer Bees)
Team Role: Engineer
 
Join Date: Nov 2001
Rookie Year: 1997
Location: Auburn Hills
Posts: 317
Jim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond reputeJim Zondag has a reputation beyond repute
Re: [DFTF] Drinking from the firehose...

Labview vs. C++, vs. Java.

This is again very much a matter of preference.
Personnally, if I were working alone by myself, I would use C++. I know C way better than any other language.
But since the whole goal of FIRST is to teach people things, we use Labview.
The Java users are the smallest group, and we have never really considered this, mostly because we know C and LV so well.

I find that, when properly constructed, a well made Labview VI is much easier to explain to students than a chunk of C code.

One thing I will say....Labview makes hard things easy, but sometimes makes easy things harder.

Example: if you want to compare two items and act if they are equal or not, you can do this with just a few keystrokes in C:
(x == y) ? a : b;
While in Labview you need to wire up a equal block to a select block, and a simple operation looks a bit like speghetti.
However, in Labview you can often bring in a single VI block which encapsulates enormous amounts of complexity. Example, I have a single VI function we made once called "Crab", which included all steering and wheel speed code for a four wheel independent steer crab drive system in a single block. The key to sanity in labview is proper style, annotation, and encapsualtion to prevent too much spaghetti. There are tons of great opensource labview VIs out there for almost anything you can think of.

Some other benefits: the Labview support is better, I think because there is a larger community using it. Labview is more or less designed for rapid code construction, so it is good for iterative developement.

To me the biggest benefit of Labview is the fact that it is an instrumentation language. It is not really a true programming langauge and some do not like it for this reason, but in realilty, we are really not trying to do software engineering in FIRST anyway. In FIRST, we are not trying to develop a highly optimized, compact piece of code; we are trying to get a robust solution as fast as humanly possible. The ability to instrument your code while it is actually running is extremely powerful once you learn how. We never need any external instumentation at all anymore....if we need an oscilloscope, just add one to the front panel, if we want to record data to a file for later, then just add a file block to your VI. These things are super easy in LV.

That said, a good coder can make a great robot in any of the 3 language options.

My $0.02
__________________
"To learn what is possible, we must attempt the impossible." Arthur C. Clarke
Reply With Quote