Preface the recent period has not been updated, on the one hand is the problem of time and energy (PS: Lazy cancer committed), on the other hand, the majority of the time in the small black is learning C + + knowledge, a lot of knowledge (from the university C language level forced a paragraph).
This article talks about some of my recent feelings and sentiment, is a summary of a period of time and records. Why learn C + + with LabVIEW for many years, in the use of LabVIEW to do development, solve problems, deeply labview strong, but why also learn another language?
In fact, as the project grows larger, some of the limitations in LabVIEW will be exposed slowly. On the one hand, LabVIEW has done a lot of encapsulation work for us, simplifying our work, but when we need to touch the bottom, LabVIEW's convenience restricts the design of the software. On the other hand, LabVIEW programming makes it easy to get started, but it also shields away many of the core concepts of software design, making it very difficult for us to become deeply in the design of software.
Summarize your own questions and customer questions, and discover that LabVIEW is generally experiencing the following problems in its development to different stages.
1. The program written by LabVIEW is less efficientEfficiency issues I've seen N times, from school graduates, aerospace, automotive, electricity and other industries of customers, many people have encountered related problems. List a few common descriptions:
- Extra signal volume, especially slow interface refresh
- Everything works, but the control cycle doesn't know why it's particularly long.
- The more The program is written, the more the card is written, the programmer doesn't know where the reason is.
- The execution time of the algorithm is longer than imagined ....
2.LabVIEW Writing Program is very difficult to expandMeet a lot of customers to consult, most of the problem is that the program to add a function is very difficult, and some can even say that extremely difficult.
For example, two scenes, I think certainly not unfamiliar: case one: the lack of programming experience leads to the development of difficult programs to recruit a few fresh students, develop a new business process, not a long time to develop a model has a kind, interface has interface, to function has function.The leader was very happy, found that the original can only think of the project can be achieved, the rapid launch of product planning, demand is endless.
LabVIEW Engineers are hard to maintain, the program is getting bigger, but the time to add a feature is getting longer, adding it to a time when the whole program is spaghetti, whether it's a single code block or the entire software architecture is all messed up .....case Two: Frequent substitutions, inconsistent team style leads to expansion difficultiesThe company allows an old employee to develop LabVIEW program, the old staff used a lot of programming language, skilled also understand the business. After a period of development, the program quickly ran.
After a period of time, the old staff leave, let another labview related development to take over the project, and then for some time the staff for other reasons have no time to maintain, and then another person.
Each leader thinks that the LabVIEW development process is relatively simple, a person can be done, when changed 2 times, the program has been difficult to maintain, chaotic programming style so that the maintainer of the burden of code modification, the entire project in the Dabbler state cannot continue.
These two cases do not say that everyone will encounter, but most of the LabVIEW engineers will have these problems, and the more the problem of engineers, the more they think that LabVIEW programming is very simple ... This is also a common problem in many research institutes and even a lot of small businesses. In the project, if there is no good development style and team management, single-handedly do not pay attention to the development of software quality, can only let the software always stay in a barely able to use the stage.
3. LabVIEW has a ceiling, there is no need to realize
The most problematic problem with LabVIEW writing programs is the software capability, which is caused by LabVIEW's highly encapsulated features, which are designed to make it easier for engineers to use, and many anti-software engineering designs.
LabVIEW aims to reduce language dependence and focus on the core business, which allows us to speed up project progress and is a tool for research and development when it comes to rapid prototyping and solving research and development nature projects.
But with the powerful function of software, the control software is also faced with all the common problems of software development, prototype verification and product development in demand and the final effect of a lot of differences. is C + + more useful than LabVIEW? Since you say so many bad things about LabVIEW, is C + + useful?
The answer is very regrettable, C + + is not as good as LabVIEW, in solving problems, C + + is LabVIEW one out of 10,000. C + + Learning at the beginning, a lot of time to solve the pointer problem, grammar problems, learning curve is very steep. Even if you understand some basic grammar, in solving the problem is also very difficult, but also need to learn the object-oriented thinking, generic programming, such as a series of concepts, and so on all the content of apprenticeship, LabVIEW engineers have done several projects intact.
In my experience, using LabVIEW to learn C + + is more difficult to start with, and one time, reading and writing the configuration file read program took me 1 days, and LabVIEW just a few minutes.
Previously written LabVIEW program everyone tried to make Windows style, and use C + + found not Windows style good, but VC + + can only be made such a son ... The cost of doing other interfaces is too great ...
Previously written LabVIEW multithreading did not feel that there is any difficulty, and in C + + to do, the feeling is difficult to the sky, the concept of the thread between the understanding is not clear, as opposed to multi-threading.
Many excellent software concepts have been encapsulated into the basic syntax of LabVIEW, and using C + + requires us to re-learn the things we take for granted.
So why do you learn C + +?
Although C + + is not easy to project. However, it is so-called, the ruler is short, inch, different software tools in different places have advantages and disadvantages. C + + Although the learning curve steep rise, but in the efficiency and design ideas of books, very rich. Long-term software engineering ideas can find a shadow here.
We can find a lot of information about how to use pointers, how to save memory, and how to avoid duplication.
We can get rid of many inefficient programming operations through C + +, such as a large number of icon designs and right-click operations in LabVIEW
We can achieve the same function, the development of programs are at the K level, and LabVIEW at least m
Of course, the world is always fair, God has closed a door for you, will open a window, carefully looking for the convenience between the different tools, you will find the best solution for your problem.
After postscript, the Black will continue to charge C + +, climbing on the steep learning curve.
Remember very interesting two pieces of my feelings very deeply, share to everyone: 1. The engineers in LabVIEW Hardware (Hardware development & testing) generally do not understand software. So, in the eyes of hardware engineers, "write programs so anti-human things." All of a sudden, hardware engineers discovered that they could actually write programs using LabVIEW. "Ah, incredibly special to achieve" "Ah, the program ran up" "Ah, I rub, out of the results" This feeling is really cool, playing this way!
2.c++c++ and other languages have a little difference, is the early you just learn a little bit, what the program is not written out, until you learn almost, suddenly become a big
From for notes (Wiz)
From LabVIEW to C + +