08-20-2009 12:37 PM
Hello,
While I realize that the question of whether LabVIEW is a programming language is an old question around here, I think I have found a new angle to approach this item with entrenched text-based users. In light of Jeff Kodosky's kenote at NI week, and the advanced LabVIEW features that seem to have reached a new level of dvelopment with the platform, I was hoping to get some feedback from the community.
I am an engineer by education and experience, but I am trying to update myself on Computer Science theory, and so I came across the theory of various 'generations' of programming languages, with assembly being the first gen, C++ and associated in the third generation, and application specific languages such as MySQL and Matlab being fouth gen.
It seems that 5th generation has not been 'truly' realized, but the last line of this Wikipedia entry seems to point at LabVIEW:
http://en.wikipedia.org/wiki/Fifth-generation_programming_language
"The likely next step to achieving full 5GL capabilities is with a graphical approach to easing programming."
Now, I don't seem to fully understand the 'contraint' concept that seems to be the tradeoff to 5th gen systems, which is why I am seeking input from the greater computer gurus. Thoughts on whether LabVIEW fits one of these generations, and maybe wireworkers and text based programmers are really in agreement, but using the wrong terminology, i.e. LabVIEW is a programming language, just a different generation, hence why it may be unreognized by 3rd G users at first?
Thanks!
Mello
08-20-2009 12:53 PM
I don't know anything about what you were talking about, but I don't see why it is so hard for text basers to start using LabVIEW.
I started using LabVIEW last summer as a senior in Computer Science Engineering at the University of Michigan, where all of my coursework was in C++. LabVIEW is like any other language I ever used, except that it has a different syntax. Not unlike every other language I've programmed in. The only thing that's different is it's inherently parallel. Once you think about dataflow for 2 minutes though it becomes very clear how to program it.
08-20-2009 01:05 PM
08-20-2009 01:14 PM
08-20-2009 01:14 PM - edited 08-20-2009 01:15 PM
You're using pictures instead of text to code things. Both are symbols for what eventually breaks down into machine language. An admittedly rough analogy would be asking if Asian languages like Chinese are actual languages because they are based on pictures conveying ideas and not text.
Bill
Edit:
Oops, this isn't directly on topic. Sorry.
08-20-2009 01:55 PM
I don't think the actual definition matters, but I don't think it would fit the 5GL model, as you are telling the computer exactly what to do (albeit in a way which abstracts more of the details).
While LabVIEW is not pure DSL, it is also not what I would consider a general purpose language. You can certainly use it to do many things which are not in its "natural" domain (I've done quite a few myself), but it's not as generic as C and for some of the things you would have to build a whole framework in LabVIEW, which would make them impractical. That said, it doesn't necessarily NEED to be a GP language - it doesn't need to do everything (just like you would use Python to write an Excel clone) and it does get better at doing what we need (and more of what we need) on more and more platforms.
08-20-2009 01:58 PM
LabVIEW cannot be defined as a 'specific Generation' language since it's not a 'dead/static' language like latin or C.
I was discussing this with a colleague of mine who codes C# or any of it's textual family members, he mentioned that for LabVIEW it is quite easy to get new primitives/functionality, all there is needed is a passionate engineer at NI and a (financial) valid plan.
For C when they wanted to move object oriented they invented a new language (or even various ones), LabVIEW evolves and most likely will always be a little bit behind the buzz-functionality the latest and greatest text programming has, however it's evoluation can be fast since there isn't an endless list of committees, just one commercial party that needs involvment to keep generating money.
Ton
08-20-2009 05:02 PM
Seems to me that it's a $4.299G language, if you want the Professional version.
08-20-2009 05:43 PM
08-20-2009 08:13 PM
Nickerbocker wrote:
I've always compared it to Java or the .NET Framework, since it requires a runtime that contains standard libraries that are required to execute code that is "compiled" (I like the word "built" better actually).
So do "regular" programs. It just so happens that 99% of the "stuff" you need is already installed with the operating system.