Go to Post No, I dont mix robots and girls. - Tom Bottiglieri [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 06-06-2010, 06:20
timothyb89 timothyb89 is offline
code monkey
FRC #1977 (Loveland High Robotics)
Team Role: Alumni
 
Join Date: Oct 2008
Rookie Year: 2009
Location: Loveland, Colorado
Posts: 45
timothyb89 will become famous soon enough
LabVIEW for C/C++/Java Programmers

(Long build-up warning, the actual question is at the bottom!)

To start off, the programmers on our team have pretty solid "conventional" coding experience with C/C++/Java. Last year, when we first got our hands on the cRIO and dev tools, we initially sided with C++, but after some frustration, switched over to the LabVIEW environment hoping for smoother sailing.

After a couple weeks of tinkering with it, myself and the other programmer at the time found that we were never "really" able to wrap our heads around it, and the code we managed to produce certainly reflected that (we've successfully used it to scare people, including ourselves). When the competition finally came around, there was a quick rewrite of everything in C++ because it simply didn't work. Needless to say, we had better luck the second time around.

So... clearly we're bad LabVIEW coders . Still, I couldn't help but notice how many other teams (ie, the vast majority or FIRST) had little to no problems working with it. So my question is this: has anyone else had trouble "figuring out" LabVIEW when coming from a so-called "conventional" programming background?

(Side note: obviously, had we devoted the time necessary to truly understand it, this problem never would have existed. I'm just asking if others have had similar experiences)
__________________
FRC-DB: A detailed, web-based scouting database for FRC teams with lots of interesting statistics.
  #2   Spotlight this post!  
Unread 06-06-2010, 10:11
Dkt01's Avatar
Dkt01 Dkt01 is offline
Programming Mentor
AKA: David
FRC #1756 (Argos)
Team Role: Mentor
 
Join Date: Jan 2010
Rookie Year: 2009
Location: Peoria, Il
Posts: 145
Dkt01 will become famous soon enough
Re: LabVIEW for C/C++/Java Programmers

My experience shows that those who have programmed in conventional languages have trouble switching to LabVIEW. I, having done little coding in C++, learned most things for the first time in LabVIEW. This made everything pretty easy. A couple people on our team who had coded in C had trouble relearning how to do things in LabVIEW.
  #3   Spotlight this post!  
Unread 06-06-2010, 11:02
rsisk's Avatar
rsisk rsisk is offline
The GURU Channel
AKA: Richard Sisk
FRC #2493 (Robokong)
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Riverside, CA
Posts: 2,750
rsisk has a reputation beyond reputersisk has a reputation beyond reputersisk has a reputation beyond reputersisk has a reputation beyond reputersisk has a reputation beyond reputersisk has a reputation beyond reputersisk has a reputation beyond reputersisk has a reputation beyond reputersisk has a reputation beyond reputersisk has a reputation beyond reputersisk has a reputation beyond repute
Send a message via MSN to rsisk
Re: LabVIEW for C/C++/Java Programmers

I certainly had a hard time moving from the languages I knew to Labview. But once you know how Labview works, it becomes natural to program in either language.

It really just takes a little time experimenting to become a Labview user

I think the big advantage of Labview is how quickly non-programmers can pick up the concepts
__________________
Quote:
The views expressed are mine and should not be construed to represent the views of anyone else.

Last edited by rsisk : 06-06-2010 at 11:14.
  #4   Spotlight this post!  
Unread 06-06-2010, 11:39
kgzak's Avatar
kgzak kgzak is offline
Registered User
AKA: Kris
FRC #4392 (Decievers) FRC #2075 (Enigma)
Team Role: College Student
 
Join Date: Dec 2008
Rookie Year: 2008
Location: Grand Rapids, Michigan
Posts: 418
kgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to behold
Re: LabVIEW for C/C++/Java Programmers

I had no problem programing in LabView, but I was just starting. 2009 was the first year I started programing, I was learning Visual Basic in school and picked up LabView at robotics. My dad picked up LabView fairly easy, and he has been programing for many years (he wants us to use machine code ) I think the reason we picked it up so easily is because I was just starting and we learned together. I guess it all depends on your experience with LabView.
  #5   Spotlight this post!  
Unread 06-06-2010, 12:11
Tanner's Avatar
Tanner Tanner is offline
Registered User
FRC #1261 (Roblions)
Team Role: Programmer
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Suwanee, GA
Posts: 311
Tanner is a splendid one to beholdTanner is a splendid one to beholdTanner is a splendid one to beholdTanner is a splendid one to beholdTanner is a splendid one to beholdTanner is a splendid one to behold
Re: LabVIEW for C/C++/Java Programmers

When we pre-ordered the new control system before the last season (lunacy) I spent about month learning LabVIEW. Didn't have any onsite mentors for it and I didn't read too much of anything in the idea of "how to do LabVIEW". It took a bit to first understand it, but once I got it, it was pretty simple.

-Tanner
  #6   Spotlight this post!  
Unread 06-06-2010, 14:44
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: LabVIEW for C/C++/Java Programmers

Quote:
Originally Posted by timothyb89 View Post
So my question is this: has anyone else had trouble "figuring out" LabVIEW when coming from a so-called "conventional" programming background?
The trouble comes when one insists on using that procedural-programming background instead of letting go and opening one's mind to the dataflow paradigm. It took me a couple of days to stop trying to apply what I "knew" about programming, but once I had accepted the way LabVIEW actually works it was smooth sailing.

It's a very Zen-like situation. The less you know, the more you learn. To learn faster, you must first forget the knowledge you already have.
  #7   Spotlight this post!  
Unread 06-06-2010, 15:40
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,125
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: LabVIEW for C/C++/Java Programmers

Quote:
Originally Posted by timothyb89 View Post
So my question is this: has anyone else had trouble "figuring out" LabVIEW when coming from a so-called "conventional" programming background?
With your permission Tim, could I expand the thread to ask if anyone who started out by learning LabVIEW as a first programming experience later had trouble learning C because they had trouble setting aside the dataflow paradigm? My son has never programmed before, and he is learning LabVIEW as a first experience. I am wondering what unique obstacles (if any) this may create when (if) he later tries to learn C.


~

Last edited by Ether : 06-06-2010 at 15:42.
  #8   Spotlight this post!  
Unread 06-06-2010, 18:20
timothyb89 timothyb89 is offline
code monkey
FRC #1977 (Loveland High Robotics)
Team Role: Alumni
 
Join Date: Oct 2008
Rookie Year: 2009
Location: Loveland, Colorado
Posts: 45
timothyb89 will become famous soon enough
Re: LabVIEW for C/C++/Java Programmers

Quote:
Originally Posted by Ether View Post
With your permission Tim, could I expand the thread to ask if anyone who started out by learning LabVIEW as a first programming experience later had trouble learning C because they had trouble setting aside the dataflow paradigm? My son has never programmed before, and he is learning LabVIEW as a first experience. I am wondering what unique obstacles (if any) this may create when (if) he later tries to learn C.


~
No objections from me .

The funny thing I found was that, after some LabVIEW experience with FLL, I didn't think figuring out the "new" FRC version would be much of a problem. I was sure wrong .

But... even from that "basic" experience I didn't really have issues learning different languages later on. I think having some experience bossing computers around really helped to that end, actually.
__________________
FRC-DB: A detailed, web-based scouting database for FRC teams with lots of interesting statistics.
  #9   Spotlight this post!  
Unread 06-06-2010, 22:13
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,756
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: LabVIEW for C/C++/Java Programmers

Let's say that you know base-ten numbers. You learn basic arithmetic, multiplication tables, decimals, fractions, all in base-ten. As far as you know, this is the only way to do math and you are on top of it. Go you.

Then a new teacher, say the CS teacher, decides to teach you base-eight numbers. It is weird. Many of the things you know about math are not necessarily correct. Everything is slow, you make many mistakes, and really just want to pretend this never existed.

Next the teacher brings up base-16, even weirder, and then base-2. Finally things start to click and you realize that there is nothing magic about base-ten, all of these are arbitrary, and there are benefits to knowing more than one system.

A similar analogy to Cartesian coordinate system versus spherical, versus cylindrical, ..., also fits. True, a language is more complex than a mathematical convention, but the point is that many times, the second way to solve a problem is more difficult to learn than the first. That doesn't mean that there was an issue with either of them, but it is simply human nature and is a natural process. Once you get over that hump, the benefits of knowing two mean three and four come far easier.

Greg McKaskle
  #10   Spotlight this post!  
Unread 07-06-2010, 09:52
Gdeaver Gdeaver is offline
Registered User
FRC #1640
Team Role: Mentor
 
Join Date: Mar 2004
Rookie Year: 2001
Location: West Chester, Pa.
Posts: 1,370
Gdeaver has a reputation beyond reputeGdeaver has a reputation beyond reputeGdeaver has a reputation beyond reputeGdeaver has a reputation beyond reputeGdeaver has a reputation beyond reputeGdeaver has a reputation beyond reputeGdeaver has a reputation beyond reputeGdeaver has a reputation beyond reputeGdeaver has a reputation beyond reputeGdeaver has a reputation beyond reputeGdeaver has a reputation beyond repute
Re: LabVIEW for C/C++/Java Programmers

The Key to Successful programming a robot in Labview is to understand the concept of data flow. Many of the text for Labview state that a procedural programming mindset can cause problems, but do not define or give very good examples of exactly what data flow means. There is an opportunity for some one to write a paper on data flow best practices. This would help the FRC community allot. Anyone up to the challenge? The next big thing that could help with the robot programming is a good tutorial on state machines. There are some good college level text on the subject but most students seam to have problems comprehending them. Another opportunity for a white paper. This year our robot code was much more complex than previous years. We had some serious control problems. As the the season progressed and the code evolved, it went from a procedural flavor to data flow and our problems resolved. This happened by experimentation not by design. The question is how to teach these concepts to new Labview programmers.
  #11   Spotlight this post!  
Unread 07-06-2010, 10:04
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,125
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: LabVIEW for C/C++/Java Programmers

Quote:
Originally Posted by Gdeaver View Post
The Key to Successful programming a robot in Labview is to understand the concept of data flow. Many of the text for Labview state that a procedural programming mindset can cause problems, but do not define or give very good examples of exactly what data flow means. There is an opportunity for some one to write a paper on data flow best practices. This would help the FRC community allot. Anyone up to the challenge? The next big thing that could help with the robot programming is a good tutorial on state machines. There are some good college level text on the subject but most students seam to have problems comprehending them. Another opportunity for a white paper. This year our robot code was much more complex than previous years. We had some serious control problems. As the the season progressed and the code evolved, it went from a procedural flavor to data flow and our problems resolved. This happened by experimentation not by design. The question is how to teach these concepts to new Labview programmers.
Wow, great post, you hit the nail on the head. The only thing I would add is a brief but usable explanation of the realtime and multitasking aspects of LabVIEW in the FRC context (LabVIEW FRC Framework). Or perhaps this could be integrated into the main topics you mentioned. From posts I have read this season and from personal experience, that was a big stumbling block for many new FRC LabVIEW users.


~
  #12   Spotlight this post!  
Unread 07-06-2010, 10:20
JamesBrown JamesBrown is offline
Back after 4 years off
FRC #5279
Team Role: Engineer
 
Join Date: Nov 2004
Rookie Year: 2005
Location: Lynchburg VA
Posts: 1,284
JamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond reputeJamesBrown has a reputation beyond repute
Re: LabVIEW for C/C++/Java Programmers

Quote:
Originally Posted by Alan Anderson View Post
The trouble comes when one insists on using that procedural-programming background instead of letting go and opening one's mind to the dataflow paradigm.

It's a very Zen-like situation. The less you know, the more you learn. To learn faster, you must first forget the knowledge you already have.

This is completely true. I took a course in programming languages, at first glance the class seemed simple, we had to learn the basics of different languages and write relatively simple programs. By this point in my Computer Science Curriculum I had little difficulty picking up languages.

The real test came when new paradigms were introduced. (Functional and Logic programming). You have to forget what you know about programming and start again, obviously it is still easier to learn than it was to learn your first language, however it is much harder than learning an additional language that follows the same paradigm.

Comparing it to learning spoken languages, Java to C++ is like French to Spanish, structure is the same, syntax is simmilar. Going from C++ to Labview is like French to German, the structure and approach are completely different.

When moving to a new programming paradigm, it is important to remember to apply the lessons you have learned about how to learn a language, not to apply the lessons about the actual language.
__________________
I'm Back


5279 (2015-Present)
3594 (2011)
3280 (2010)
1665 (2009)
1350 (2008-2009)
1493 (2007-2008)
1568 (2005-2007)
  #13   Spotlight this post!  
Unread 07-06-2010, 10:58
Robototes2412's Avatar
Robototes2412 Robototes2412 is offline
1 * 4 != 14
FRC #2412 (Robototes)
Team Role: Programmer
 
Join Date: Jan 2010
Rookie Year: 2007
Location: Bellevue
Posts: 312
Robototes2412 is on a distinguished road
Re: LabVIEW for C/C++/Java Programmers

This might sound like an idiotic question, but is there a way to edit labview code with a text editor?
  #14   Spotlight this post!  
Unread 07-06-2010, 11:21
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: LabVIEW for C/C++/Java Programmers

Quote:
Originally Posted by Robototes2412 View Post
This might sound like an idiotic question, but is there a way to edit labview code with a text editor?
No, you can't edit LabVIEW code with a text editor. There is no underlying text representation to manipulate.

It might be possible to take the "directed graph" which defines a vi and produce a text report containing all its information, but one would need to invent a syntax for it, and making changes to that report and reversing the process would be extraordinarily error-prone.
  #15   Spotlight this post!  
Unread 07-06-2010, 18:06
demosthenes2k8's Avatar
demosthenes2k8 demosthenes2k8 is offline
Graduated but not gone
AKA: Matt Soucy
FRC #0166 (Chop Shop 166)
Team Role: Mentor
 
Join Date: Jan 2009
Rookie Year: 2007
Location: Merrimack, NH
Posts: 590
demosthenes2k8 is a splendid one to beholddemosthenes2k8 is a splendid one to beholddemosthenes2k8 is a splendid one to beholddemosthenes2k8 is a splendid one to beholddemosthenes2k8 is a splendid one to beholddemosthenes2k8 is a splendid one to beholddemosthenes2k8 is a splendid one to beholddemosthenes2k8 is a splendid one to behold
Send a message via AIM to demosthenes2k8 Send a message via Yahoo to demosthenes2k8
Re: LabVIEW for C/C++/Java Programmers

Ugh...I've learned several text-based languages over the years, but switching to Labview was the hardest one to do. One of the mentors would tease me about how I wrote my labview code with random sequence blocks in it, simply because I wasn't used to having an environment do things for me like race conditions.

I only use it for the dashboard, but it's still taught me some things
__________________


GSR Dean's List Finalist 2011
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

Similar Threads
Thread Thread Starter Forum Replies Last Post
PROGRAMMERS: WIND RIVER C++ vs LABVIEW vs JAVA krudeboy51 Programming 92 30-05-2011 17:00
Labview and Java chsrobotics3283 NI LabVIEW 3 13-03-2010 21:36
New TipJar Video: LabVIEW for C++ Programmers. LVMastery Programming 1 06-05-2009 15:41
CMU Cam2 Java app (Help with Labview GUI) Team 1649 Programming 3 26-12-2006 14:25
Hints For Rookie Programmers Noah Programming 30 20-02-2003 20:07


All times are GMT -5. The time now is 03:45.

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