传统意义上的程序的庞杂是由于体系结构上的不匀称所致。环节稀少,以致有些环节过于粗大,而有的环节又过于瘦弱,概念逻辑上模糊,所以需要“专家”编程,类似上几个世纪的“英雄”们,他们必须无所不能。但现代工业文明的土壤似乎已不再需要他们,恰当地说是培育不出来。这里的现代工业文明突出地表现在两点:链路管道化、全球网络化。这两点在现代信息系统的结构上也由于万维网 WWW 的浸泡而表现的淋漓尽致。
现代意义上的编程正在越来越少,体系结构庞大,系统编程量很大,而靠近用户端的编程很少。这主要是由于和传统意义上的程序相比,由于体系结构链的拉长而“稀释”了程序。
这里所发生的一切的哲学基础便是:“简单就是美”。HTML 的发明追求的是简单,Java 作为面向网络与对象的语言追求的也是简单,XML、CORBA 等也盖莫能外。甚至爱追时髦的微软在其 Windows 2000 的旗舰 SOAP 的第一个字也是 Simple。但正是这一个一个的简单“链就”了现代信息技术工业。
整个计算机工业发明的历史也是基于简单主义的。你瞧二进制的发明意味着什么?
X = 10m = 2l * 2m * 3n * 2p * 5q ……
高进制被分解为低进制这说明了什么呢?不正是体现了简单化吗?这难道又是一个机器指令集的 CISC/RISC 复杂与精简之争吗?
传统意义上的编程作了很多本应与应用逻辑无关的事情,比方说你得关心设备、标准、协议、格式、存贮等,当然这还没有说到商业逻辑或业务流程来。传统意义的硬件、操作系统、语言平台、应用程序的四级结构将在多个层面受到冲击,力量将主要来自于“面向对象的OO”、“信息与程序等价的XML”、“互连协议的CORBA”三个源泉,正是她们在携万维网之势改变着整个现代信息世界。操作系统本身要改变形态,语言、标准要改变形态,程序与应用也要改变形态,等等不一而论。
未来的编程重在描述,每个环节上的人们各自描述好自身有关的问题,这就是 XML 为什么会在今天走红的本质所在、或社会基础。这与传统意义上的程序重程序流程轻事务描述恰恰相反。过去的程序更像拥有很多“诀窍”的专家,今天的程序更像一个开放的专家小组或一个组织,甚或是一个部队,每个单元的任务都很简单。而现代网络则更像一个社会,每个人都是一个简单事务的接受、处理与提供者。
未来的程序设计可能更像是在设计电路或可以“摆弄(Study In Studio)”的机械装置,就像现在人们使用辅助设计 CAD 软件一样,编程环境应是 CAP 吧?也一定是在一个三维或多维的“虚拟环境”中,VDML/VEPL“编程”应该是高度可视化的。随之而来的便是,新一代的软件工程师将在更高的层次上“沦落”为“工匠”,知识件工程师便是未来的新贵宠儿