上QQ阅读APP看书,第一时间看更新
第1章 软件和软件工程
一些新科技的发明创造会给其他一些看似与之无关的技术领域、商业企业、公众甚至整个社会文化带来深远而出人意料的影响和作用—这就是所谓的“意外效应法则”(law of unintended consequences)。
如今,计算机软件开发已经成为世界舞台上最为重要的科技领域之一,并且是“意外效应法则”的一个最好的体现。在20世纪50年代,当时没有人预料到软件科学会成为今天商业、科学和工程所必需的技术,它促进了新科技的创新(例如基因工程)、现代科技的发展(例如远程通信),以及传统技术(例如印刷业)向现代科技的过渡。软件技术已经成为个人计算机发展的推动力量,消费者可以很容易地在商店或者从网上购买到软件产品,一家软件公司甚至可以比传统工业时代的许多公司更大、更有影响力。在大量应用软件的驱动下,因特网迅速发展,并使人们生活的诸多方面(从图书馆搜索、消费购物到年轻人的约会习惯)产生革命性的变化。
例如,图像处理软件最初设计是为了动画产业的应用,如Photoshop,后来这些软件逐渐大众化,现在很多人都会使用它们做一些基础的照片修改处理。结合数码相机,利用软件使大家拍出来的相片更好看(见图1-1)。
图1-1 美图软件
例如,最初没有人想到软件可嵌入各种系统中,这些系统包括交通运输、医疗、远程通信、军事、工业、娱乐和办公设备等。又如,Java语言最初是设计在机顶盒这样的设备上使用的,但它后来发展成为因特网时代的主流开发语言之一。
当然,起初也没有人会想到,随着时间的推移,将有数百万的计算机程序需要进行纠错、适应性调整和优化,这些维护工作可能会耗费比开发新软件更多的人力、物力。