Zibb
Subscribe to Control Engineering
FirstLight
Ask Charlie   


Recent Posts

Recent Comments

Most Commented On

Archives

Blog

Link This | Email this | Blog This | Comments (0)


Is Eclipse similar to LabView?
April 28, 2008

This question relates to comments I made in an article that appeared in the March issue of Control Engineering entitled, “The culinary art of mechatronics.” In that article, I described the (so far) four generations of programming language, which are roughly:
1GL — machine code (ones and zeros)
2GL — assembly code (such as microprocessor op codes)
3GL — human-readable programming languages (Fortran, C, C++)
4GL — frameworks (Eclipse, Microsoft Visual Studio, National Instruments LabView)

Both Eclipse and LabView are 4GL, meaning that they are object-oriented editing tools used to develop software systems. The next stage for those systems is 3GL (most often C), which gets compiled into 2GL, and finally deployed as 1GL on the target processor(s), which actually runs the programs. Framework graphical user interfaces (GUIs) typically include toolbar buttons that automatically compile and run the program being developed on the development system (that is, the computer the framework runs on, which may or may not be the target system).

That’s about where the similarities stop. While both might come under the heading of “authoring tools,” they’re optimized to help author do quite different things. LabView, for example, is a single-source proprietary product that comes from the data acquisition world. It is specialized for producing measurement and control software by engineers with electronics backgrounds. Users manipulate graphical objects (VIs) based on electronic circuit symbols on a GUI window (schematic view) similar to an electronic-circuit schematic diagram. A second GUI window (panel view) displays representations of switches, knobs, gauges, and digital displays that make up the GUI for the program under development.

Eclipse, on the other hand, is an open-source product designed for and by engineers with a computer-science background, who are developing general purpose programs. It supports many 3GL languages, such as C and Java. I am more familiar with LabView. I have Eclipse running on one of my Linux machines, but have not used it very much.

I generally use a general-purpose text editor (kWrite, for you Linux mavens) to write programs in text-based 3GL languages, rather than frameworks. That’s a legacy of decades of programming before software-development tools appeared. I learned to program by writing with my right hand on a coding sheet, while thumbing through a Fortran manual with my left hand. Then, I handed the coding sheets to a research assistant, who ran off to punch it into Hollerith cards on a keypunch machine.

Getting access to a dumb terminal hooked up to a minicomputer was just the bee’s knees!

While I haven’t used Eclipse a whole lot, I have used other 4GL frameworks. Generally, their biggest advantage seems to be that they often provide programming guides, and some level of error checking. For example, Bluefish is an open source framework for Web development. It provides a rich set of pull-down menus that drop HTML, PHP, and MySQL code into a document, providing the correct sequence, syntax, and punctuation to start with. All you have to do is modify placeholders to match your application.

While this feature may seem like a crutch for beginners just learning the language, it is just as useful for those of us who constantly switch between 3GL languages. Matlab, for instance, superficially resembles C++, but there are important differences in details that trip me up constantly. If I’ve been, say, writing a lot of C++, then jump into Matlab, I find myself forgetting which conventions go with which. Having a framework that can say something to the effect of: “Use spaces to set off array elements in that command, not commas!” is a lot better than going through a bunch of code modules line by line to find the typo.

Another advantage frameworks have is that they typically operate at the system level. That is, they provide tools to keep track of the various code modules that make up a system. For example, a couple of weeks ago I was working on a simulation system written in Matlab that consists of 5 modules. Since I was using a general purpose text editor (kWrite), rather than a 4GL framework, every time I changed the global variable list, I had to copy and paste the updated list into every module manually each time I added a global variable. That was manageable with only 5 modules. It’s a different story when the system includes dozens or hundreds of modules. A framework could automatically update all the affected modules in the system.

To sum up, Eclipse and LabView are similar in that they are both 4GL frameworks. They differ in that one (Eclipse) is a software engineer’s tool supporting several languages, while the other (LabView) is an optimized measurement and controls engineer’s tool.
Also read: Which is better for control systems: object or text programming?

Posted by Charlie Masi on April 28, 2008 | Comments (0)



POST A COMMENT
Display Name or Registered Users Login Here.

Before submitting this form, please type the characters displayed above:


Advertisement



Advertisements



About Us   |   Advertising Info   |   Site Map   |   Contact Us   |   Useful Sites   |   FREE Subscription   |   RSS
© 2008 Reed Business Information, a division of Reed Elsevier Inc. All rights reserved.
Use of this Web site is subject to its Terms of Use | Privacy Policy
Please visit these other Reed Business sites