用一生编写完美 ——专访“LabVIEW之父”Jeff Kodosky
时间:12-13
整理:3721RD
点击:
用一生编写完美
——专访“LabVIEW之父”Jeff Kodosky
eefocus 记者 王晓丹
鹤发童颜,矮胖身材,谦和而腼腆的笑容,还有鸽子一般低沉温柔的语调——11月8日上午,NI创始人之一、被人们尊称为“LabVIEW之父”的Jeff Kodosky站在30周年公司庆典的上海会场上,开始了他的主题演讲。没有笑话,没有即兴发挥,没有美国高管都很擅长的演说技巧,他低着头,近乎匀速地念着手中准备好的英文讲稿。这让台下的听众都很庆幸自己提早拿到了一份中文翻译——否则,自己将会错过一个精彩而厚重的演说。没有什么比这种出场更符合“LabVIEW之父”的本来面目了。这就是Jeff,一个用一生的时间钻研一种技术的人。
从天真和运气开始
80年代初,当NI提出“虚拟仪器技术”的概念时,这个想法遭到很多同行的哂笑。所谓“虚拟仪器技术”,就是利用在个人计算机上运行的软件平台,将以往依靠专用仪器完成的测控任务改由软件和模块化硬件集成的平台来实现。因为这种方式打破了专用台式仪器在行业的垄断,突出了软件的强大功能和优势,而且能够让用户灵活的自定义不同任务要求,NI公司认准这将是未来测控行业的大势所趋。然而,那时最先进的个人计算机主频不过4.77MHz,内存也仅仅64KB,如此低下的计算能力使得稍微复杂的测试测量任务都无法用软件方式去实现。
困难还不仅仅是计算机性能带来的局限。在看到1984年面世的、128k内存的Macintosh计算机之后,Jeff被其图形化特性深深打动——“我那时就认定,相对于输入一串串命令,人们一定更喜欢鼠标和图形化界面。因为任何工具都应该适应人的习惯,而不是相反。”因此,他决定要开发一种图形化、人性化的软件平台,把工程师从繁琐、艰深的Basic和Fortran编程之中解放出来。
1985年的夏天,Jeff开始组织研发人马。因为有经验的程序员都拒绝加入这个异想天开的计划,他只好召了一批对Macintosh无比着迷的年轻学生,在德州大学一间狭窄的办公室里开始封闭式开发,向着他们的梦想——一套运行于Macintosh之上的、具有直观人机交互面板的仪器控制程序——奋力跋涉。
“当时我们当中没有任何人有过图形化编程经验。但是因为我们足够天真,所以亲手创造一套伟大语言的理想将我们鼓舞得热血沸腾。我们不停的遇到难题,不停的尝试和否定,不停的激烈争论,最终确定了软件的核心理念——并行的数据流结构。感谢上帝,在确立了这一原则之后,一切问题就容易多了。”
为了向公司同仁和充满怀疑的外界交代,Jeff意识到自己必须不时用一些研发成果证明自己的梦想并非幻想。于是,他给自己的团队制定了一个严格的时间进程表。当年的万圣节,即研发开始后的第四个月,Jeff和他的年轻团队进行了第一次成果演示。他们展示了图形化软件的架构,让程序和仪器进行了对话,收集了数据,并在屏幕上展示出结果。每个人都为了这一成功欣喜若狂。1986年1月,他们又进行了第二次成果演示。但是这次则是一次彻底的失败:因为代码太多,128K的Macintosh无法支持,编译器罢工了。
万幸的是,此时此刻天使降临:苹果公司新推出了内存达1M的Macintosh plus 1。Jeff长出一口气,因为他的程序代码完全可以在新机型上奔跑了。
Jeff心中的里程碑
1986年,NI公司正式发布LabVIEW 1.0版。然而出乎意料,他们的客户并非来自他们事先瞄准的仪器控制行业,而是涵盖了测试测量、监控、建模到仿真的各个领域。Jeff在备受鼓舞之余也感受到巨大的压力,因为他明白1.0版的性能并不能完全满足客户的需要。于是,他立即投入了LabVIEW2.0的开发。这次,难度之高、历时之久,又超乎了他的想象:直到1990年,2.0版本才顺利发布。这三年多的时间成为Jeff最难忘的回忆——“为了达到更高的软件性能,我们必须要发明一个用于LabVIEW结构化数据流语言的编译器。而在重新开发编译器的过程中,我们又意识到编辑器、图形显示以及几乎所有的细节都要重新编写。”
也正是经过了这次脱胎换骨,LabVIEW软件越来越臻于成熟。尤其让那些曾经轻视个人计算机和虚拟技术的同行感叹不已的是,20年来,微处理器性能和计算机存储容量经历了高达1万倍的增长——这让依托于PC技术的LabVIEW软件插上了一双冲天之翼。
回看LabVIEW系列的历程,几个里程碑式的产品发布在Jeff心中占有特殊的地位:
“除了LabVIEW2.0,1998年的LabVIEW 5.0是我认为最重要的发布之一。因为我们那时就为现在的多处理器设备提供了预先设置的多线程支持功能。”
“1999年的LabVIEW RT(实时)版本可以运行在实时操作系统上,这个创新的理念帮助我们进入了控制设计和仿真市场。”
“特别值得一提的是2003年推出的LabVIEW 7。它引入了波形数据类型,以及一些交互性更强的、基于配置的函数。它还实现了对PDA的支持,给很多便携电子领域的工程师提供了方便。更重要的创新在于,LabVIEW自此可以用在FPGA上了,这是我们一直以来的梦想,让不具备VHDL编程经验的人也可以同样进行硬件设计。”
当然,他提到了刚刚发布的20周年纪念版LabVIEW8.20。“这是第一个简体中文版,因为我们一直希望降低中国工程师学习和操作LabVIEW的语言门槛。同时,这也是我们第一次发布仿真框图和MathScript节点。我认为这将大大提升LabVIEW在设计工程师心目中地位。”
由于LabVIEW系列的普及和成功,这一软件还带动了NI的硬件产品销售:从数据采集、PXI到模块化仪器,NI成为让同行羡慕不已的“软硬通吃”的楷模。
汽车和椅子的定位
通常认为,编程语言的生命周期约为50年。这是否意味着刚刚过了20岁生日的LabVIEW软件也已经渐入中年?Jeff对此给与斩钉截铁的否定。他甚至拒绝别人把LabVIEW看作一种和C,C++一样的通用程序语言,因为这样会抹煞LabVIEW的其他重要特性——尽管,别人是把这种评价看成是对LabVIEW的褒扬。
Jeff曾经专门撰文指出:如果一辆汽车可以让你舒服地坐下,你并不会因此就叫汽车为“椅子”,因为显然它还有更大的用处;同样,如果你把LabVIEW看成一种和其他通用语言一样的东西,那么你就像把汽车叫成椅子一样,大大委屈了这辆汽车,以及使用和制造它的人。
这段话让人不禁莞尔:这是只有“LabVIEW之父”才能想到的类比。
迄今很难改变的看法是,人们认为基于文本的、顺序编程的语言才是通用程序的标准特征,而LabVIEW这种基于并行数据流的图形化软件,只是一种用在特别领域的软件——即使已经有不少人用它来设计游戏软件、管理软件、金融分析软件等等五花八门的应用程序之后,固有的观念依然难以改变。在Jeff看来,对LabVIEW最恰当的描述是:它可以用作通用语言,但是它比通用语言还要强大。“用过LabVIEW的人都知道,它不仅具备了通用语言的所有核心功能,而且它还必须应对更多的问题,比如物理接口问题,实时操作问题,硬件配置问题,以及更为苛刻的用户接口问题。”此番正名之后,他笑称,自己其实一点儿也不反对别人用LabVIEW开发那些与测控毫无关系的程序。“至少,越多人用它,那么关于编程语言的陈见就会越少!”
所有人都可以理解Jeff对LabVIEW的挚爱和执着;但是令人好奇的另一个问题,就是花甲之年的他是否还能保持一个高级软件工程师所需要的精力和脑力。显然,你我身边都极难找到这样的“银发程序员”——大家都在感叹技术发展过快,于是一旦进入35岁,国内大多数程序员都已经或者计划完成转型的过程。
“我现在和以前只有两点不同。第一,工作时间少了。现在我每天平均工作8小时,以前比这多得多。第二,我比以前爱忘事了。但是,我没觉得年纪对我的工作构成什么障碍。我和以前一样,还是挺机灵的……”Jeff脸上浮现出一个大大的笑容,“说实话,我只有和孙辈儿一起玩的时候,才觉得自己老了。因为我没办法像他们一样爬来爬去。”
对于很早就放弃技术生涯的同行,Jeff的建议是,如果你真对自己的新选择一往情深,那么就换吧,别耽误时间。“我也曾经尝试过商务方面的工作,但是我发现自己根本不适合,也得不到任何乐趣。但当我回归了技术角色之后,一切便又感觉良好。总之,不管你打算做什么,尽早确定下来,然后就是全心的投入。总有一天,好运气也会找上你的。”
——专访“LabVIEW之父”Jeff Kodosky
eefocus 记者 王晓丹
鹤发童颜,矮胖身材,谦和而腼腆的笑容,还有鸽子一般低沉温柔的语调——11月8日上午,NI创始人之一、被人们尊称为“LabVIEW之父”的Jeff Kodosky站在30周年公司庆典的上海会场上,开始了他的主题演讲。没有笑话,没有即兴发挥,没有美国高管都很擅长的演说技巧,他低着头,近乎匀速地念着手中准备好的英文讲稿。这让台下的听众都很庆幸自己提早拿到了一份中文翻译——否则,自己将会错过一个精彩而厚重的演说。没有什么比这种出场更符合“LabVIEW之父”的本来面目了。这就是Jeff,一个用一生的时间钻研一种技术的人。
从天真和运气开始
80年代初,当NI提出“虚拟仪器技术”的概念时,这个想法遭到很多同行的哂笑。所谓“虚拟仪器技术”,就是利用在个人计算机上运行的软件平台,将以往依靠专用仪器完成的测控任务改由软件和模块化硬件集成的平台来实现。因为这种方式打破了专用台式仪器在行业的垄断,突出了软件的强大功能和优势,而且能够让用户灵活的自定义不同任务要求,NI公司认准这将是未来测控行业的大势所趋。然而,那时最先进的个人计算机主频不过4.77MHz,内存也仅仅64KB,如此低下的计算能力使得稍微复杂的测试测量任务都无法用软件方式去实现。
困难还不仅仅是计算机性能带来的局限。在看到1984年面世的、128k内存的Macintosh计算机之后,Jeff被其图形化特性深深打动——“我那时就认定,相对于输入一串串命令,人们一定更喜欢鼠标和图形化界面。因为任何工具都应该适应人的习惯,而不是相反。”因此,他决定要开发一种图形化、人性化的软件平台,把工程师从繁琐、艰深的Basic和Fortran编程之中解放出来。
1985年的夏天,Jeff开始组织研发人马。因为有经验的程序员都拒绝加入这个异想天开的计划,他只好召了一批对Macintosh无比着迷的年轻学生,在德州大学一间狭窄的办公室里开始封闭式开发,向着他们的梦想——一套运行于Macintosh之上的、具有直观人机交互面板的仪器控制程序——奋力跋涉。
“当时我们当中没有任何人有过图形化编程经验。但是因为我们足够天真,所以亲手创造一套伟大语言的理想将我们鼓舞得热血沸腾。我们不停的遇到难题,不停的尝试和否定,不停的激烈争论,最终确定了软件的核心理念——并行的数据流结构。感谢上帝,在确立了这一原则之后,一切问题就容易多了。”
为了向公司同仁和充满怀疑的外界交代,Jeff意识到自己必须不时用一些研发成果证明自己的梦想并非幻想。于是,他给自己的团队制定了一个严格的时间进程表。当年的万圣节,即研发开始后的第四个月,Jeff和他的年轻团队进行了第一次成果演示。他们展示了图形化软件的架构,让程序和仪器进行了对话,收集了数据,并在屏幕上展示出结果。每个人都为了这一成功欣喜若狂。1986年1月,他们又进行了第二次成果演示。但是这次则是一次彻底的失败:因为代码太多,128K的Macintosh无法支持,编译器罢工了。
万幸的是,此时此刻天使降临:苹果公司新推出了内存达1M的Macintosh plus 1。Jeff长出一口气,因为他的程序代码完全可以在新机型上奔跑了。
Jeff心中的里程碑
1986年,NI公司正式发布LabVIEW 1.0版。然而出乎意料,他们的客户并非来自他们事先瞄准的仪器控制行业,而是涵盖了测试测量、监控、建模到仿真的各个领域。Jeff在备受鼓舞之余也感受到巨大的压力,因为他明白1.0版的性能并不能完全满足客户的需要。于是,他立即投入了LabVIEW2.0的开发。这次,难度之高、历时之久,又超乎了他的想象:直到1990年,2.0版本才顺利发布。这三年多的时间成为Jeff最难忘的回忆——“为了达到更高的软件性能,我们必须要发明一个用于LabVIEW结构化数据流语言的编译器。而在重新开发编译器的过程中,我们又意识到编辑器、图形显示以及几乎所有的细节都要重新编写。”
也正是经过了这次脱胎换骨,LabVIEW软件越来越臻于成熟。尤其让那些曾经轻视个人计算机和虚拟技术的同行感叹不已的是,20年来,微处理器性能和计算机存储容量经历了高达1万倍的增长——这让依托于PC技术的LabVIEW软件插上了一双冲天之翼。
回看LabVIEW系列的历程,几个里程碑式的产品发布在Jeff心中占有特殊的地位:
“除了LabVIEW2.0,1998年的LabVIEW 5.0是我认为最重要的发布之一。因为我们那时就为现在的多处理器设备提供了预先设置的多线程支持功能。”
“1999年的LabVIEW RT(实时)版本可以运行在实时操作系统上,这个创新的理念帮助我们进入了控制设计和仿真市场。”
“特别值得一提的是2003年推出的LabVIEW 7。它引入了波形数据类型,以及一些交互性更强的、基于配置的函数。它还实现了对PDA的支持,给很多便携电子领域的工程师提供了方便。更重要的创新在于,LabVIEW自此可以用在FPGA上了,这是我们一直以来的梦想,让不具备VHDL编程经验的人也可以同样进行硬件设计。”
当然,他提到了刚刚发布的20周年纪念版LabVIEW8.20。“这是第一个简体中文版,因为我们一直希望降低中国工程师学习和操作LabVIEW的语言门槛。同时,这也是我们第一次发布仿真框图和MathScript节点。我认为这将大大提升LabVIEW在设计工程师心目中地位。”
由于LabVIEW系列的普及和成功,这一软件还带动了NI的硬件产品销售:从数据采集、PXI到模块化仪器,NI成为让同行羡慕不已的“软硬通吃”的楷模。
汽车和椅子的定位
通常认为,编程语言的生命周期约为50年。这是否意味着刚刚过了20岁生日的LabVIEW软件也已经渐入中年?Jeff对此给与斩钉截铁的否定。他甚至拒绝别人把LabVIEW看作一种和C,C++一样的通用程序语言,因为这样会抹煞LabVIEW的其他重要特性——尽管,别人是把这种评价看成是对LabVIEW的褒扬。
Jeff曾经专门撰文指出:如果一辆汽车可以让你舒服地坐下,你并不会因此就叫汽车为“椅子”,因为显然它还有更大的用处;同样,如果你把LabVIEW看成一种和其他通用语言一样的东西,那么你就像把汽车叫成椅子一样,大大委屈了这辆汽车,以及使用和制造它的人。
这段话让人不禁莞尔:这是只有“LabVIEW之父”才能想到的类比。
迄今很难改变的看法是,人们认为基于文本的、顺序编程的语言才是通用程序的标准特征,而LabVIEW这种基于并行数据流的图形化软件,只是一种用在特别领域的软件——即使已经有不少人用它来设计游戏软件、管理软件、金融分析软件等等五花八门的应用程序之后,固有的观念依然难以改变。在Jeff看来,对LabVIEW最恰当的描述是:它可以用作通用语言,但是它比通用语言还要强大。“用过LabVIEW的人都知道,它不仅具备了通用语言的所有核心功能,而且它还必须应对更多的问题,比如物理接口问题,实时操作问题,硬件配置问题,以及更为苛刻的用户接口问题。”此番正名之后,他笑称,自己其实一点儿也不反对别人用LabVIEW开发那些与测控毫无关系的程序。“至少,越多人用它,那么关于编程语言的陈见就会越少!”
所有人都可以理解Jeff对LabVIEW的挚爱和执着;但是令人好奇的另一个问题,就是花甲之年的他是否还能保持一个高级软件工程师所需要的精力和脑力。显然,你我身边都极难找到这样的“银发程序员”——大家都在感叹技术发展过快,于是一旦进入35岁,国内大多数程序员都已经或者计划完成转型的过程。
“我现在和以前只有两点不同。第一,工作时间少了。现在我每天平均工作8小时,以前比这多得多。第二,我比以前爱忘事了。但是,我没觉得年纪对我的工作构成什么障碍。我和以前一样,还是挺机灵的……”Jeff脸上浮现出一个大大的笑容,“说实话,我只有和孙辈儿一起玩的时候,才觉得自己老了。因为我没办法像他们一样爬来爬去。”
对于很早就放弃技术生涯的同行,Jeff的建议是,如果你真对自己的新选择一往情深,那么就换吧,别耽误时间。“我也曾经尝试过商务方面的工作,但是我发现自己根本不适合,也得不到任何乐趣。但当我回归了技术角色之后,一切便又感觉良好。总之,不管你打算做什么,尽早确定下来,然后就是全心的投入。总有一天,好运气也会找上你的。”