捣鼓了一阵子OO设计,觉得这个玩意还比较阳春白雪,即便是采用现成的类库进行应用级别的开发,也显得有些难度。很多时候,特别在应用层次的开发中,了解底层的那么多类的概念和层次是痛苦的。
我想起两年前在实验室做测控系统开发的时候,采用National Instruments(国家仪器公司)的主打产品Labview。这个东西,专门针对信号采集、处理,它把很多功能(FFT、滤波器、示波器、IO……)都做成控件(VI,不是ActiveX),开发人员只需要在一个虚拟的“线路板”上把这些东西用线连接起来就行了,纯粹的图形化编程。用Labview这个东西开发软件,基本上是针对数据流的,不过它还是具有很多OO的思想——虽然在它诞生的20世纪80年代,OO还不是那么流行。不过,对于应用系统开发者来说,并不需要知道什么OO,在他们的眼睛里面,那些控件都是实际存在的仪器。Labview改变了测控领域软件开发的历史,使得一般信号工程师也能经过短期培训之后就能用Labview开发集信号采集、处理、分析、数据IO等完整功能的测控软件了。
实际上,Labview可以看作是一个图形化编程平台,而非限于测控开发。并且,可以说,它几乎是Matlab那种脚本语言的图形化实现。我考虑,是否在某些领域,可以仿照测控领域那样,归纳出一些基本功能,在Labview平台下做成控件,那么这个领域的应用软件也可以图形化编程了,并且不需要现在意义上的程序员。
一旦某个领域能够实现这样的开发手段,那么一般的业务骨干就能替代程序员了。如果这种趋势越来越猛,那一般应用软件程序员的路子就越来越宰了。