第2.7节 LabVIEW的受众面
在这个世界上,到底会有多少人在学习LabVIEW,估计没有人能够回答得出。记得是几年前,在OpenG的网站看到过一篇报道,是一个普查机构关于计算机语言使用者排行的调查报告,LabVIEW的排名在34位(?)(具体的排位记不太请楚了)。2008年4月看到一份资料,称 LabVIEW的排名在第31位。前三名为:Java、C、 VB。
那么,在中国到底有多少人学习过LabVIEW,估计也不会有人能知道。大学中又有多少学校开设了LabVIEW课程?大概也是一个未知数。最近几年的里,在每年的上半年学生开始进行毕业设计时,在与LabVIEW有关的网站或论坛上,到处都可以看到什么“跪求”、“救命”、“帮忙”等帖子,询求 LabVIEW项目的设计资料,说明在大校还是LabVIEW学习较为集中的地方。
记得在一次NI的招待会上,我看见两个民办中等技术学校的老师,我非常好奇便问到:“你们学校也开LabVIEW课程”?他们很坦诚的告诉我:“这样的学生将来比较好就业”。当然,现在学习了,今后就有可能会使用到。
2005年赴上海NI学习模块化仪器课程,恰有20多年没见面的大学同学在南京,乘车路过南京时约他在南京火车站站台见面,火车停稳后,见他手拿NI的白色手提袋站在站台上向我招手,心中很迷惑,因为他不从事技术工作,详细了解后方知:也想了解一下虚拟仪器技术。
在本《札记》的“序”中,曾提到每年帮助过我的NI AE,基本上都是新人。这也足可以看出NI在中国的发展速度是相当快的。
我的“博客”开始是在EDNChina的网站上,我深深地知道,由于资金、项目等原因,目前学习、使用LabVIEW的人还不是很多;所以,关注这方面内容的人一定很少。令我万万没有想到的是,100天来我的“博客”竟有了15200次的点击;我的日志:“学习LabVIEW的理由(1)”和“数据采集系统设计原则(1)”单篇日志的点击率达到975和846。
其实,LabVIEW 的受众面取决于它的应用范围和应用程度,Jeff Kodosky老先生(我非常尊敬和崇拜他)曾设想LabVIEW会成为“通用编成语言”。LabVIEW真的会成为一种通用的编程语言吗?
我个人认为,LabVIEW成为一种通用的编程语言还有相当长的一段距离,至少目前是这样。LabVIEW成为一种通用的编程语言是Jeff Kodosky 老先生为他的“虚拟仪器”王国的发展或者说未来的发展制定了一个理想。
我认为,LabVIEW是一种最适合测量和自动化的应用领域的应用程序的开发环境(或者也可以称为:编程语言)。它最大的贡献在于为那些对使用通用编程语言感到陌生和困惑的测试、测量工程师提供了一种简介、快速的图像化编程方法,以此来帮助和提高自动化测量能力。通过多年的学习、使用我深深地感觉到它的方便、快捷能力,使我的工作受益匪浅,套用一句小品的台词:“谁用谁知道”。
使用LabVIEW可以创建应用程序(非测试、测量自动化应用程序)吗?回答应该是肯定的:可以。我的同事就使用LabVIEW编制了一个很好的游戏程序及做了一个题库自动生成模拟试题等应用程序。
那什么因素导致LabVIEW还不能成为一种通用的编程语言呢?
根据我的实践看有以下几个因素:
1、程序的解读性差
我们知道“语言”是用来交流的一种工具。LabVIEW想成为一种通用的编程语言也不可能例外。而实际使用过程中,特别是在程序较大时,我们很难读懂别人设计的VI,或者说充分了解设计者的思想。
2、程序档案管理能力差
一个应用程序的文档是要给很多人看的,这包括设计者、使用者和维护者,也必须能够很方便的打印、存档。而LabVIEW程序框图的打印效果非常不理想,这给程序的维护和修改带来了不便。比如一个稍微复杂点的状态机程序框图,打印下来就要有很多分支图,如果是放到《札记》中,必然造成篇幅很大。在写这本 《札记》的过程中,我就遇到了这样的麻烦。我认为这是一个致命的弱点(可能是图形化的原因)。
3、使用的广泛性
由于LabVIEW设计的初衷就是面对那些测试、测量工程师,可能反而限制了其它使用者的使用,所以应用的广泛性必然会受到一定的影响。另外本地化过程太慢、价格等因素都是影响它成为一种通用的编程语言的障碍。
这些都是我个人的观点,实际上最近几年LabVIEW一直在试图扩大它的应用领域和影响面,这包括:与乐高公司合作开发图形化的机器人编程系统(从娃娃抓起?);ARM嵌入式处理器的图形化开发;FPGA的图形化开发、电子仿真、OOP设计思想的引入等等。
特别值得一体的是,NI许多应用程序的设计,也来自他们用LabVIEW进行设计实现,当然也包括许多VI的设计。下面我们举两个例子来说明。
例1、 Extract Single Tone Information VI
图中的左边是“Extract Single Tone Information VI”的图标,右边是该VI的程序框图。显然这个VI是用LabVIEW语言设计的。在LabVIEW提供的函数中,这样的VI有很多。
例2、DMM应用程序
NI 4070 DMM的应用程序前面版图,它清晰的写着:Powered by LabVIEW。
Jeff Kodosky老先生不久将会看到了,由他率领、指挥、驾驶的LabVIEW战舰正驶向“通用编成语言”的海港。当越来越多的由LabVIEW制造的LabVIEW程序出现时,离他的远大目标还会远吗?
Jeff Kodosky老先生对此现象的言谈被翻译成“自食其力”,到底是动物界的“克隆”,还是生物界的“无性繁殖”,还是人们所说的“自食其力”,这些还是由专家们去定义吧!LabVIEW快速的发展、功能越来越强大则是不争的事实。
根据2008年11月份调查LabVIEW在语言排行榜已升至第29位
前三名依旧为:Java、C、 VB。