第1章 虚拟仪器杂谈
1.1 LabWindows/CVI概述
每每感觉NI公司对LabWindows/CVI支持越来越差时,总是上ni.com/cvi网站看看他们的newsletter。看到2013年第一季度NI公司又要推出新的版本——LabWindows/CVI 2013,感觉激动而又无奈。作为一个已经用了十多年LabWindows/CVI开发工具的老用户来说,没有什么会比开发工具升级更令人激动的,从LabWindows/CVI 4.0.1开始用到现在,LabWindows/CVI所有版本在推出之后我都会第一时间找到试用版,总是在拿到试用版后有一种难以名状的思绪,好奇、惊奇、激动、思考、淡然,然后就是试用之旅,编写自己最想实现的代码。
久而久之,代码也就越积越多,思路变得开阔了许多,想法也逐渐多了起来。从LabWindows/CVI 4.0.1到5.0、5.5、6.0、7.0、7.1、8.0、8.0.1、8.1、8.1.1、8.5、8.5.1、9.0、9.0.1、2009、2010再到2012,见证了从1996年至2013年近17年的发展历程。从Windows 3.1、Windows 95到现在的Windows 7、Windows 8,可以说几乎兼容所有的Windows系统,这对于NI来说,也是一个不小的进步,其间每一点点的进步,都凝聚了NI人精心且细致的雕琢。
大概从1997年开始,中科泛华引入了NI公司的LabWindows/CVI,一时间,虚拟仪器的概念和名词火了起来,国内也出现了虚拟仪器的首批开创者与领导者(也称发起人),这可以从当时的学术期刊中见到端倪。与现在的情况截然不同,在当时,只要能写出一篇有关虚拟仪器编程或操作的论文,就能很快被期刊发表,当时的《光明日报》也经常长篇累牍地介绍什么是虚拟仪器、虚拟仪器如何代替传统仪器、虚拟仪器的优势何在等文章,并且也有当时的名流进行点评,如果大家现在重新以审视的目光看有关虚拟仪器的硕士论文,还能找到当时那些话语的影子,如“软件就是仪器”,在当下这个名词过剩的时代,如什么大虾、菜鸟、OUT、给力、哥不是传说、李刚等飞快地出现又以闪电般的速度消失的时代,没有人会想到虚拟仪器的那些词汇、语句、段落还能一年又一年地被继承,被传诵,这简直就是一个奇迹!
谈起那些年我们一起经历的那些事,不得不提的就是LabWindows/CVI 5.5,这几乎就是国内虚拟仪器的起步版本,随之而来的是LabWindows/CVI 6.0,达到了极盛。之后,一切归于沉寂,人们开始了重新的思考与定位。彼时,如刘君华的《虚拟仪器编程语言LabWindows/CVI教程》(2001)、张凤均的《LabWindows/CVI开发入门和进阶》(2002)、张毅刚的《虚拟仪器软件开发环境LabWindows/CVI 6.0编程指南》(2002)、刘君华的《基于LabWindows/CVI的虚拟仪器设计》(2003)、宋宇峰的《LabWindows/CVI逐步深入与开发实例》(2003)掀起了国内学习虚拟仪器技术的高潮,全国各大学、各科研院所都以这种先进的理论为依托,或成立专门的研究机构,或进行深层次的学习与创新,如吉林大学的“图形化虚拟仪器开发平台”是具有自主知识产权的虚拟仪器平台,类似于LabVIEW,但是,推广的难度大,目前的状态也不佳。2005年,孙晓云老师出版了《基于LabWindows/CVI的虚拟仪器设计与应用》并于2010年进行扩展,出了第二版,2006年笔者出版了《LabWindows/CVI测试技术及工程应用》,并于2011年对内容进行扩编,再版重新命名为《LabWindows/CVI虚拟仪器测试技术及工程应用》,扩充了图像与音视频处理技术,其后又于2012年年底和2013年年初推出了《LabWindows/CVI虚拟仪器设计技术》与《LabWindows/CVI虚拟仪器高级应用》,将多年的编程经验集结成册。从这个领域图书的出版发展历程可看出,LabWindows/CVI技术可谓先热后冷,在这个拥有10多亿人的泱泱大国慢慢地蜕变。
每年都有大批新的LabWindows/CVI学习者加入,又有大批的程序员退出,这其中的酸甜苦辣也许只有亲历者才能讲述得清楚:都是虚拟仪器,我为什么不用图形化的开发工具LabVIEW呢?一句C代码都不用写,不用动态分配内存,不用考虑内存泄漏,而且,上手快,出活快,还用速度如牛的C语言做什么?在多数人都浅尝辄止之后,LabWindows/CVI的衰落是一种不可避免的趋势,在这种颓势下,又何必鼓吹C语言的灵活来掩盖图像化的形象呢?毕竟,对绝大多数人来说,方便快捷,功能神奇是如神曲。由此看来,不要过多纠缠于语言、语法,懒汉型的绘图式编程方法是能够很快为大多数人所接受的。