本文首先通过与传统行业的对比,回顾了软件行业的发展历程;然后探讨了互联网背景下面向构件的发展趋势。通过本章,你可以对面向构件的历史与现状有一个大致的了解。
1.1 面向构件的演变
你需要把事物追究到最早的起源,并且考察它们因何并且如何变为退化的,但是仍要向古今两个时代都去求教;向古时要问何者是最良好的;向现时要问何者是最适当的。——培根,《培根论说文集》
面向构件实乃一种思想、一种方法,从本质上说,就是将需求分配到诸如类、包、服务等构件中。其核心思想还是来自于分割的原理,就像我们研究物质一样,自然界一切物质都由有限数量的元素组成,每种元素对应着相应的分子或原子等。所以,通过与传统行业的构件化进程的对比,也许是理解软件构件化的一个最佳起点。
1.1.1 汽车行业的构件史②
20世纪是人类进入工业化社会的世纪。制造业是工业化的龙头,它影响着整个工业化的发展进程。其中汽车工业又是20世纪对人类生活影响最大的产业之一。汽车技术已有100年以上的历史,汽车制造技术已经从手工打造一步步地发展到基于构件的大规模的生产。这里我们将与读者一起回顾这个发展过程以及构件思想对汽车制造业产生的影响。
1.从第一辆蒸汽汽车的产生到第一个汽车构件工厂的诞生
1769年,法国人N.J.居纽(Cugnot)制造了世界上第一辆蒸汽驱动三轮汽车。1879年,德国工程师卡尔.苯茨(KartBenz),首次试验成功一台二冲程试验性发动机。1885年,后者在曼海姆制成了第一辆苯茨专利机动车,此车具备了现代汽车的一些基本特点,如火花点火、水冷循环、钢管车架、钢板弹簧悬架、后轮驱动前轮转向和制动手把等。这代表着第一个汽车构件工厂的产生。
2.基于构件的组装,使大规模的快速生产成为可能
20世纪80年代,汽车模块化生产方式初露锋芒,技术实力雄厚的零配件生产商德尔福系统公司相继推出了座舱、接口盘制动、车门、前端、集成空气/燃油等模块,在现代汽车装配线上注入了新的概念。
1.1.2 软件行业的构件史
任何一个行业的发展都与当时的技术发展状况有着直接或间接的关联,汽车行业如此,软件行业也不例外。但是软件就其本身特征而言更加具有复杂性,它从一开始应用于简单计算到现在渗透到各行各业,甚至与每个人的生活都休戚相关。与传统行业相比,无论从其外延还是其解决问题的复杂性,都有其独特性。
我们将短短几十年的软件史,划分为以下几个阶段。
1.面向机器阶段
这个时期的核心是“机器”,其代表性语言“汇编语言”,要求开发者以机器的思考方式来编写程序代码。汇编语言写出来的程序与机器代码一一对应,你不仅必须要知道诸如CPU、寄存器、存储地址等计算机的内部构造,还要知道其类似加、与、或等直接运算指令。要关注这么多的细节,开发者的思维就只能局限于类似计算、控制这样狭窄的领域。
2.面向过程阶段
面向过程使得人们不用再局限于机器的思维逻辑,人们可以站在解决问题的角度来设计软件,这个时期的核心是“算法”,关心的是怎样用程序或者说数学模型来解决一个个的难题。面向过程的代表性语言是C、Fortran等语言,它们是高效的代表,也是颇受欢迎的语言,大多数操作系统的实现都离不开它们。面向过程使得人们的思维水平由“机器”上升到了“问题”的层面。