1.3 LabWindows/CVI的成名之作
LabWindows/CVI在中国的成名之作是5.5和后来的6.0,也正是这两个版本,为我们带来了一米阳光,但在不久之后也让我体会到了英雄末路的痛苦。2000年之后,LabVIEW 6i的持续发酵, LabWindows/CVI终于从虚拟仪器领头羊的光鲜中走下神坛,继任者当然是LabVIEW,而且,无论是从程序设计的理念还是从其复杂度等方面来看,LabVIEW无疑都是当今G语言中首屈一指的,这让老式的C语言几乎再也没有翻盘的希望,使一批老的程序员在经历被人羡慕、追捧、辉煌之后,体会到了穷途之哭。
接踵而来的是LabWindows/CVI阵营的倒戈,坚守的人越来越少,这从出版物中也能看出来,业内知名专家刘君华老师在推出两本LabWindows/CVI教材后,也顺势出版了三本LabVIEW教材,即使到目前,也还能找到这些书,或许,刘老师在十几年前(2001年)就预示到了LabVIEW的火热吧。
NI的两个开发工具,按诞生时间来说,LabVIEW是老大, LabWindows/CVI是老二,而且还掺杂着Microsoft的血统,即使按照中国人的思维,老大也应该是继承祖业的首选吧!
从数据采集卡到系统集成再到解决方案,NI公司包揽了测试测量领域几乎所有的开发工具和相关组件。但是,虽然中国的市场大,却很少有人愿意花钱买虚拟仪器软件,而是不惜重金购买其硬件设备,这可能与国人长时间以来习惯为硬件付费而喜欢软件盗版有关,或许需要一个漫长的过程来改变了这一观念。
当然,NI适应了,不得不说NI是一家非常聪明的公司。在外人看来,NI更像是一家靠卖数据采集卡维生的硬件设计公司,而究其实质而言,我个人认为,它却是一家地地道道的软件公司。NI通过不遗余力地在各种测控期刊、相关报纸以及网络媒体上宣传其旗舰产品LabVIEW进而促使大家“入道”。当我们一旦发现已经没办法脱离这个优秀的集成开发环境时,它的硬件产品必然会成为首选。
因此,就像NI公司极力宣扬的一样:软件即仪器。软件真的就是仪器。离开软件,仪器就不能称之为仪器,为了把这种思想发挥到极致,NI把LabWindows/CVI自然而然地放到了第二梯队,因为使用LabWindows/CVI实现第三方硬件厂商的集成实在是太方便了,就如同使用NI自家的产品一样。而如果真的做到与第三方硬件无缝集成,可能LabVIEW的地位在极短时间内便会岌岌可危,这也是NI不希望看到的。但愿不会出现这样的问题,否则,会使国内90%虚拟仪器受众大呼“坑爹”。
还是从5.5开始,LabWindows/CVI集成开发环境中加入了对ActiveX支持,但一直到最新的LabWindows/CVI 2012 SP1,也未见其有多少实质性的更新。对于COM/DCOM最多只能算是部分支持,不支持OCX控件开发,中文支持能力偏弱,在面板中ActiveX控件编辑阶段,乱码随处可见,不支持ActiveX控件的中文属性,这与几乎完整支持中文的LabVIEW有着天壤之别,这些不禁使我想起赵本山小品中的一句话:“天啊,同样是生活在一起的两口子,差别怎么会这么大呢?”
再说LabWindows/CVI的编译器,自5.0以后(大概是1998年后),它的ANSI C标准LCC编译器就再也没被更新过。打电话问其原因,工作人员通常会以各种理由搪塞,大概的意思是说,NI公司专注于为工程师解决实际问题,提供友好的集成开发环境,至于编译器,并不是他们的主要开发方向。
也许这从一个侧面说明了NI公司更专注于解决实际问题而非一些无足轻重的编译指标,我们是否可以理解为是集中力量做主业的一个信号?由此而引发的编译速度问题,他们采用第三方的外部编译器来优化解决,关心这些问题的朋友可以打开LabWindows/CVI的菜单Options下的Build Options来选择理想的编译器。
也许只有NI能做得这么极致,即使选择第三方编译器工具,也会提供非常完善的解决方案,让你既爱又恨,若即若离,有时候又让你哭笑不得、欲哭无泪、欲罢不能,苦于Visual C++的烦琐, Borland C++ Builder的老旧,转了一圈又回来,哎,破棉袄也是棉袄,凑合着穿吧,就当是吃了鸡肋。