看了楼上写的长文,有一点感触。
首先,作为工程师的编程语言,LabVIEW想要做到的最重要一点就是简化复杂性。
从小的来说,就是上手容易,大多数的工程师并非专业的编程人员,而且其研究领域可能跟编程大相径庭,如果在他的研究项目中的30%时间都花在了底层的用C代码实现数据采集的话,那本身就是专业知识的一个浪费。而LabVIEW想要做到的,就是能够想尽办法将底层都帮工程师们铺设好(例如一个特定的FFT变换,就给你现成提供了一个VI就能实现,你只要现成拿结果数据就可以了),而帮助工程师将其主要的精力放在自己的研究项目中。
从大的来讲,简化复杂性还表示着如果你掌握了LabVIEW的编程方法,那么你可以通过LabVIEW去接触到以前可能根本无法利用的技术。比如FPGA技术,现在很多地方都用到了这个技术,但是你想用它首先就要学会VHDL语言,但这是个硬件语言,需要一定的学习曲线和专业知识;但是现在LabVIEW帮你做到了这一点,你还是用LabVIEW来编程,但通过LabVIEW开发人员为你做好的FPGA模块,就能自动将你的代码生成VHDL语言(当然,这种自动生成的效率会比VHDL低一点),从而让你也能享受到FPGA技术所带来的技术优势。
其次,楼上说的开发大型程序问题,应该分为两种:一种人会问,LabVIEW能不能驾驭大型应用程序?(这个有点类似Airpumpkin所说的观点),另一种人会问的是,开发大型应用程序会不会反而花了工程师更多的时间?
先看第一个问题,相信如果是用LabVIEW一定时间的开发者都能体会到,LabVIEW is only limited by your imagination。我之前做过一个Demo,它解释了一件事情,LabVIEW是否powerful?从采集、分析到显示来分别回答这个问题:在采集中,LabVIEW可以高效地采集到任何传感器带来的信号,不管是数据采集、PLC、传统示波器、射频仪器等,通过LabVIEW都可以直接touch到采集的原始数据;在分析中,LabVIEW提供了强大的信号处理以及分析功能,时域、频域、小波、声音振动、控制设计仿真、智能算法、图像处理等,应有尽有,让你能够得到最终你想要的结果;而显示中,LabVIEW的控件可以帮助你设计最美观的人机界面,报表自动生成,短信提醒,有效的数据表达。此外,世界上已经有很多工程师和科学家都用LabVIEW做了世界上最复杂的事情,比如欧洲极大望远镜、思维控制的轮椅等等。因此,我可以很自信地说,它并非一个所谓的组态软件,它能够做到powerful。
关于第二个问题,在之前,由于LabVIEW面临的很多客户都是只做一些简单程序的,因此还没有问题,但目前随着很多工程项目的日益复杂,就出现了对大型的LabVIEW应用程序开发的需求。我之前听别人说过,有一个LabVIEW的项目程序文件大小达到了2-3G,这也是我所见过最大的LabVIEW程序了。但,可喜的是,现在LabVIEW也开始注意这方面的需求,从软件工程的角度对自己进行了优化,不管是之前你可以用状态机、生产者消费者循环这样的设计模式,现在你还可以用面向对象的编程方法,也可以实现软件在环的程序测试。具体的上面也已经给出了链接。
总之,简化复杂性(Abstract Complexitiy)和强大(Powerful)是同时存在于LabVIEW中的,也许你会说那不是会非常矛盾?但是我个人认为,世间万物都是矛盾的组合体。
楼上的高人已经说过,这是一个学习的过程。世界上任何事情如果想成为高手,都不可能一蹴而就的,LabVIEW也一样。

Zen 最后编辑于 2009-05-02 16:51:34