LabWindows/CVI Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Ron_Hubscher

Make the change to Eclipse (or some other common framework platform)

Status: New

NI is not a C/C++ Editor-Debugger company.  And, it will never be able to invest the man power needed to get there.  NIs strengths are its Instrument UIs, its libraries, and it's visual application UI pieces.  The LabWindows/CVI tool looks and feels like tools from the mid 90's (ie.  like an old Borland C editor, but even less featured).  It lacks the toolset found in VisualStudios, NetBeans, and Eclipse.  And, it will always be behind.

 

The Verigy93k tester was like this several years ago.  They wrote their own C/C++ editor, and it was at a mid 80's level.  When a team was asked to rewrite the UI and bring it up to date, they made a novel choice (they recognized that they were not a UI platform / editor company), and they moved their product under Eclipse.  Teradyne Flex did something similar a year or two later moving under Excel and Visual Studio.  The thing is this, both companies realized that they could make more money focusing on their real strength.  They added libraries and apis to work in the platforms framework, and changed/adapted the platform framework to work for them.  ie. Teradynes Flex test tool does not say "Excel/Visual Studio", it says it is a Teradyne product based on MS Excel and VS.  And, they have adapted the platform to their needs adding on the extra Windows/UIs/... to meet their needs.  Same with the Verigy 93K.

 

In Teradynes case, they went back to the drawing board.  So, we will ignore this (even with their success).  In Verigys case, all their existing APIs worked in the new platform, and the user didn't need to change anything when they upgraded.  But, suddenly the Editor and Debugger were up to date, with latest greatest features.  It was a huge change overnight.

 

LabWindows really should make a shift to Eclipse.  Keep your old legacy stuff at first, but working under Eclipse.  Add in "Views" and "Tools" to supplement what Eclipse doesn't give you for free.  And, remove unwanted or confusing plugins from the eclipse base.  (This is what advantest did.)  Leave in features that make Eclipse great, like error view, and the ability to have several "perspectives".  And really focus the man power into making a product that will blow the others out of the water.  NI has what it takes to make great Instrument editing/debugging windows in Eclipse.  But, NI doesn't have the 1,000's of people and millions of man hours required to make an Editor/Debugger that will compare to the Eclipses/VisualStudios of the world.  As a business they should focus on what will make them a differentiator, and reuse what is accepted and common.

 

Anyway.  My 2 cents on how you could really improve LabWindows in a few short months.  (Note: Verigy spent all of 9 months and 9 engineers on their C/C++ integration into eclipse...  I know... I was there at the time.)  If you took the LabWindows team, and a year or two...  Imagine how much better of a job you could do.

13 Comments
Ron_Hubscher
Member

Ps.  I know this is a hard and novel concept.  This concept was met with a large amount of resistance at both Verigy and Teradyne at first.  But, for both companies, it was later proven to be a huge success, reduced costs, and allowed the companies to make real differentiating changes.

kkeller
Member

I agree with you on most points, but are you aware of MeasurementStudio? As far as i know it's exactly what you're describing even though it probably has a greater focus on .NET technologies. It even offers a CVI-to-VS project converter.

Ron_Hubscher
Member

I am aware of MeasurementStudio, and I even like it.  (Wasn't thinking in that direction as I posted the above)  The issue I see with Measurement Studio is that I have not seen it tied too well back to LabWindows where many people have such a huge repository of DVT work, that making the jump difficult.  Solve this... and I think this would tie things back together.

OVR_CZ
Member

Sorry, but i do not agree with that idea.

 

Eclipse : ( In short it is:  big, resource and CPU hungry, complicated)

-it has some nice features (i realy want coloring of #if  .. #endif block by actual compiler condition in CVI), but not all of them are must-have things.

-it is not so easy to learn and use, when compared with CVI (and Visual studio express).

-every comercial plugins i see/use have problems when new version is released (plugin api?).

-I always feel like if eclipse need speed boost, not only its horrible slow workspace loading and startup time, but also normal work is not "smooth" like in CVI ide.

 (The bigger and older project are much much slower than new small one)

-Both of them , eclipse and CVI ide, has similar number of litle bugs.

Sure,there is space for improvement in CVI ide, but that does not mean that there is no place for it. At least for me.

 

The cvi compiler is very good and the new clang based version is even better.

Its improvements are  very helpful for beginer/nonregular programmers and for quick prototype application

(pointer/array range check, unitialized variable check, resource tracking, ... - improved and packed to all-in-one-easy-to-use package).

CVI IDE+compiler+runtime combinationis not bulet-proof/best of all or without any errors (for example i would like that cvi follow clang improvement more quickly) but it is great one, and very easy to use/start with it.

 

Sumarized:

Eclipse has great customizability, but it is not without flaws. I see that it can be good for someone, but it is rather heavy.Strength of CVI lies in simplicity, fast and easy development, not in customization of ide. I think that if someone need bigger IDE, he can use measurement studio(Visual studio).(And if you absolutely need features in other IDE(like in Eclipse) , you can use clang compiler to compile CVI applications, this should not be that hard. But of course, this is not officialy supported way)
(note:I do not hate eclipse, I use it for some time in other projects. I just think that it does not fit for CVI environment/feelings)
 
P.S. sorry for my bad english

 

Ron_Hubscher
Member

OVR_CZ,

 

I would have to disagree on many points.  I pulled both apps up, and started the task manager to see the size.  Eclipse was slightly larger than CVI, but both were smaller than iexplorer.  So, neither is memory hungry.  Next I evaluated CPU speed.  CVI tended to hog 1 processor only, and drove it to the ground (often running slower for many common operations done in bulk).  Eclipse did not exhibit this at all because it makes better use of all processors on the CPU, hence had a lower overal load value.  Next, you said it is easier to come up on CVI.  Well, that was the whole reason I jumped on this thread in the first place...  Several people at my work have had to come up on both Eclipse and CVI in parallel recently (for me it was a refresher after 7 years out).  In general they all claim it took longer to come up on CVI due to the fact that there are many "non-standard" things.  aka.  things like non-standard math.h, non-standard shortcut keys, and the list goes on.  Plus, the code navagation is much more primative, so it take longer to hunt things down.  In fact, Eclipse and Visual Studio have much more common to each other than CVI has to either.  CVI looks a lot like the early 90's Borland C people used years ago, which has since died.  It is improved...  But, not much.  And, when you look at all the confusion in the menu options...  Unless it's all you've been using forever...  CVI causes many new engineers to "deer in the headlights".  You commented on speed...  So, I took the same code on both, and checked the speed...  CVI was much slower.  Now, I don't hold this against CVI, because they are doing a lot of safety checks in the background that normal GCC, and CLang don't do.  But, I have other tools (like valgrind) that do pretty much the same checks.  And, I only run those tools when I see an issue, or right before a release.

 

Now, I don't "hate" CVI.  It's just that everytime I use it, I feel like I am stepping back in time 30 years.  I heard an engineer the other day say it as...  It's like taking a horse and buggy to work, when the Camero is right there.  (He was comparing CVI to MeasurementStudio.)  At my work, we are forced to use CVI for legacy reasons.  Many of us would love to be on MeasurementStudio (which is a much better product) for several reasons.  VB is much easier to use than C, plus most instruments now provide sample VB code with their products.  Most no longer provide sample C code.  Next, C# is much more powerful than C, and you can make clean OO interfaces that newer engineers can just snap into from VB and .NET.  And, teh list goes on...  Hence it would meet our needs much better...  The tools are much more standard, and people come up to speed quickly.  But, the issue comes from the legacy code, and the fact that MeasStudio doesn't really have a migration path.

 

Personally...  All I really want is a clean migration path from CVI/LabWindows into Measurement Studio.  Aka.  Let me just open my project in MS and run as if nothing had changed...

OVR_CZ
Member

hi Ron_Hubscher

My my bigger CVI project is over 300MB and Eclipse one is about  550MB big.

But they are not the same project nor platform, so it is not direct comparsion. And in these days memory is cheap and everyone has lot of procesor cores. Finaly,  i could agree that slow start of eclipse, (even if it is more than one minute to load that whole workspace), is not that bad if normal ussage is OK.  eclipse is usable, but i have better feelings in CVI IDE.

But again, maybe this all is because of modification in eclipse made by our commercial supplier. Maybe pure eclipse and the potential CVI version will be better. I do not wat to make flame about this theme.

 

Instead i like to cocentrate on complexity. Eclipse is much more complicated than CVI.

It is, there are so much settings over there. Some of them seems duplicated, layered and acessible from multiple places. Some of them are inherited from parents settings. And the concept of pespectives? Very useful, yes, but not so simple.And  i see a toolchain, that bypased - no used a lot of eclipse settings, so it was hard to say which settings are used or not. (it was few years ago and i am happy very that i do not use it anymore).

I remember that first "most-useful" command that i found with my colleague, when we started with eclipse is "Reset perspective" because we could not find how to re-open some eclipse panels that we closed by mistake. This is not what i could named as easy and simple enviroment. I can imagine that especially begginers who does not know much about programming, toolchains and IDEs, could be easily overwhelmed by eclipse.

 

Based on my feelings - CVI is targed for Technical engineers who need quickly prototype an application in conjunction with NI hardware.Of course not all cvi users and projects are from that category. Programmers are improving and projects are growing.

But every one need to start somewhere, and CVI is great for it.

 

For your last note, I can not agree more. When you make that idea a separate one i immediately vote for it.

It would be realy great if we can move your project to Measurement studio (or even to eclipse) by some Wizard.

So people can start our projects easily in CVI and when project grow in complexity and/or size, it will be possible to move to more powerfull (but also more complex) IDE and compiler.

ZVS
Member
Member

LW/CVI has a quite specific area of usage. It is not a common tool for developers who wants to build "a lot of GUI, nothing behind" software. So two poins:

1. It is enough what it is now. Yes, it needs C++ compiler support and some new features, but no dramatical changes needed.

2. Switching to absolutely different user interface is a heavy task for long term CVI developers. Some of them prefer to stay with old good times. I expect you know Eclips well and this is not a problem of you. But this is my problem.

3. Eclips based on Java. It sounds Ok to develop Java application. Otherwice it sounds a bit strange. This is not critical of course. Just a note.

AlejandroR
Member

Hi ZVS

 

No it's not a common tool for developers who want to build UI heavy applications, but it's also not a tool for developers who wan't to be efficient, use modern languages or modern approaches, either. I have to disagree with your arguments. It is not enough right now. Lack of C++ is one of the major shortcomings, but there are so many small things which need fixing until you can consider CVI to be a good IDE. It lacks proper code formatting, coloring and refactoring to name just a few. Also this pseudo IntelliSense is just a joke. Project management is somewhat weird, too. The whole user interface just has a 1995 look and feel.

Of course adapting to a new IDE takes it's time but anyone how considers himself a somewhat decent developer/engineer will have no problem handling a new IDE.

So, using a Java based development environment for C or C++ sounds strange? Thats merely a personal issue. I guess you also only code asm in IDEs which are written in pure asm, right? Because it would totally sound strange if you coded asm in a c based environment. This argument just does not contribute to the whole discussion.

I understand that almost no one uses CVI compared to the almighty LabView, so I don't expect huge changes. However, if they manage to port CVI to a somewhat decent IDE, they will again have time to focus on the important things like providing good T&M tools instead of creating a clumsy IDE.

ZVS
Member
Member

To AlejandroR

 

As you can see I also wrote that CVI needs to be C++VI (I meen C++ support). But "use modern languages or modern approaches" is not always right. Human beings is quite conservative creature. Proper code formating, coloring, and all other things you noted is good to be done, but this topic not about them. You should understand it I think.

I know some developers/engineers who switch to new IDE every time it just apears. As a result they do not know any of IDE quite enough and spend a lot of time to figure out how to do this or that thing. Any IDE is just a TOOL and it should be comfortable. If I can do my task with this IDE, tell me why I should adapt to a new one?

Don't you see a difference in asm-c and java-c links?

As for decent IDE. I like MVS IDE more than Eclipse or Netbeans or whatever and what? You still think that Eclipse will be better IDE? BTW, NI has the Measurement Studio that uses modern .NET engine and modern MVS 2012.

AlejandroR
Member

Well, propably some human beeings are conservative, so what? No one forces them to use modern approaches. Even if CVI would support C++, you can happily code your procedural C code like you did before. However, developers who want to improve can use more modern technologies like object orientation or unit testing.

 

Why shouldn't we discuss simple things like intelligent code formatting etc.? These are all things that most IDEs do better than CVI. In CVI i have to manually rename references if a change a variable or a function name. Eclipse or Visual Studio offer these features. So why shouldn't these arguments be considered?

 

I agree with you, switching IDEs as soon as they become popular isn't a good thing but that's not the point of this whole discussion. You probably want to swtich IDEs because they offer you a lot more comfortability, allow you to write better, more stable software in less time.

 

You said yourself that you like VS more than eclipse. Thats probably because it offers you a lot more than eclipse does. Yet, Eclipse still offers you a lot more than CVI. I know of Measurement Studio, but from what I've heard it's C++/C support isn't that good. Also you have to buy a separate IDE which some wouldn't like. Furthermore, as Ron mentioned above, there isn't an actual reliable migration path.