软件史纵横


 
横空出世,软件诞生

早期能使计算机工作的人,几乎和计算机本身一样披上了神秘的色彩。那些经过专门训练的极少数科学家在庞大的计算机上,拨开关,揿按键,转旋钮……,忙得使人目眩。由于计算机只认可用0、1表示的二进制代码,加之输入采取纸带穿孔卡读取的办法,一些科学家往往在忙了大半天后,却搞不清自己“为来为去为什么”。

习惯上把用0、1写成的二进制代码段称为机器语言。人们为了使输出输入稍方便一些,便将常用的象正弦sin,对数log等函数的计算,预先编好程序段(这种等待参数填入,完成一件小事的程序段叫子程序)让用户随时可以取用。编好了的机器语言程序被称作管理程序,软件史就从管理程序开启了它光辉灿烂的第一页。时间正是1951年。

但“软件”一词是在1960年巴黎召开的一次计算机学术会议上正式启用的。当时,人们已经于把主机,显示器叫作硬件,相对于硬件,在那时的历史背景下,人们把程序称作软件。横空出世的软件,给日后的世界带来了翻天覆地的变化。
 
汇编初出茅庐,FORTRAN后来居上

机器语言太难懂了!

看到那些在UNIVAC I(第一台通用自动计算机)上进进出出的天书一般的穿孔卡,程序员们既头疼又着急。

每调出一个结果,他们就象小孩子过节一般欢呼雀跃;每开始调试一个新程序,却如履薄冰。

1952年,计算机语言在向自然语接近的研究中取得了突破,计算机科学家毛希利等人,在UNIVAC I上研制成功一种新语言——汇编语言。

这种语言在表示上不再是讨厌的0、1数字代码,而采用了接近自然语或数学算式的易认易记符号(如←Y)。当然,由于计算机只能听懂机器语言,便为这种新语言配了一个特殊翻译:汇编程序。人们借助汇编程序,与“老计”神侃,机房里终于有了欢快的笑声。

初出茅庐的汇编语言在应用和普及中如沐春风,几乎每种机器都有了自己特定的汇编语言。

汇编族突破了机器的雷区,软件界不再寂寞。

巴克斯,巴克斯!

1956年,几乎全世界各地的计算机研究所都在传颂巴克斯在IBM704上发明FORTRAN 语言的消息。那些从事科学和工程的人们说:“巴克斯把我们从繁重的奴隶般的劳动中解放了出来,他就是斯巴达克斯(古罗马奴隶起义领袖)!”

FORTRAN语言在计算上却实具有超凡魅力。著名计算机科学家GOODS曾做过一个有趣的实验,他让他的学生用FORTRAN 语言跟一个玩机器语言的高手比赛,看谁算得快。结果,不得不以“高手”的失败而告终。

FORTRAN, FORmula(公式)和TRANslation(翻译)的缩写词,也叫公式翻译语言。直到今天,她还在全世界广泛流行。由于比较接近自然语,不象机器语或汇编语只能适用于某一型机器,人们给FORTRAN 戴了一顶高帽——“高级语言”。而机器语言和汇编语言叫作“低级语言”。

FORTRAN 是第一个用于科技和工程计算的语言,也是第一个真正广泛使用的高级语言。在软件史上,她堪称语言向自然语挺进的里程碑。

后来居上的FORTRAN 成为新宠不过三年,一种长于商业数据处理的计算机语言分娩了。
 
软件盛世,众语言各显神通

60年代是高级语言的本命年。

1959年,宾夕法尼亚大学召集计算机制造厂、用户和大学的有关人员,以美国国防部为主举行了CODASTL (数据系统语言)会议。次年,COBOL 60公开发表。这就是现今广泛流行的标准化典范语言COBOL 的鼻祖。

几乎与此同时,ALGOL 60也走上了历史舞台。她的“父亲群”是以瑙尔为首的一批科学家。

COBOL擅长数据处理,ALGOL则以风格严谨知名,她明晰、匀称、人见人爱,可以说是一个典型的计算机语言模型。COBOL 采用了自然语言的程序设计风格,程序书写采用接近英语的形式,易于被欧美及英语流行的国家和地区(如印度、香港、新加坡等地)接受。

当日历翻至1962年的时候,凯梅尼和库尔茨在美国Dartmouth学院提出了会话式语言BASIC。虽然五花八门的计算机语言其时已象现今大商场的商品一样琳琅满目,但BASIC 语言以其易学易用,成为竞赛场上的一匹“黑马”,令人刮目地成了最受欢迎的入门语言。

BASIC 的发展大致可分为四个阶段。初期BASIC,基本及扩展BASIC,高级BASIC,结构化BASIC。各阶段功能逐步增强。1985年,True BASIC问世,它在结构化程序设计、解释跟踪、图形功能,计算速度和可移植性方面,均有上乘表演。1987年,Borland(博兰德)公司推出Turbo BASIC,编译运行,窗口显示,使BASIC人机界面焕然一新。1991年,Visual BASIC的问世,更使BASIC在应用方面达到了前所未有的普及。

科学家们在使计算机语言向自然语前进的途中,还有个大手笔——通用语言。

通用语言有个绰号:“公共汽车”语言,意为用户可以按自己的品味选取所喜欢的语言功能,就象乘公共汽车,这个人乘这一段,那个人乘那一段,还有的人从头乘到底。PL/I和ALGOL 68是“集大成语言”通用语言的佼佼者。

PL/I荟萃了FORTRAN、ALGOL 60、COBOL的特色,增加了字表处理和存贮分配能力;ALGOL 68是在ALGOL 60功能上的扩充,从理论上讲,她是一个意义相当重大的语言,但ALGOL 68报告理论太高深,概括太精炼,很难读懂。ALGOL 68与PL/I,可以说,一个是“阳春白雪”,一个是“下里巴人”。

70年代初,软件园来了一位新客:PASCAL。PASCAL,苏黎世联邦工科大学N·沃思教授的杰作,它的语言风格脱胎于ALGOL 60。

PASCAL程序简洁,第一次体现结构化概念,表达能力强,移植容易,实用性高,也具有BASIC 易学好用的特点。

PASCAL和BASIC 是各国语言学习者的必修科目,被称为高级语言的“双璧”。

现在,是我们让软件园的主持人——操作系统亮相的时候了。
 
千呼万唤始出来,CP/M激起千层浪

计算机语言百花争妍的七十年代,计算机本身正向微型化方向发展。1971年,Intel 公司成功地研制出了四位Intel 4004芯片,1973年,又研制成功八位Intel 8086芯片。微型机的诞生,已经指日可待。

七十年代中期,台式微机,工作站,超级微机,膝上机相继面世,“谁来指挥他们”,人们千呼万唤。

事实上,早在1972年,AMAA(美国微型机协会)就悄悄地为一个“指挥系统”作临产前的准备了,他们用PL/M程序设计语言为Intel 8086编写了纸带编辑程序ED。1973年,PL/M的创始人Gary Kildall博士决定“挂帅亲征”,很快在DEC公司的主机TOPS-10上,培植成功一个管理程序和数据的“胚胎”。博士旗开得胜,感觉当然是“味道好极了!”,但Intel 公司及其它著名电脑公司却对此充耳不闻,这使“元帅”和“士兵”们很是光火,1974年,“胚胎”得以向全世界公布:版本号V1.3;大名:CP/M;全称:Control Program/Monitor (控制程序或监控程序)。

虽然CP/M V1.3 是为肩任“控制程序和数据”的“上帝”而来的,但“上帝一世”却颇受冷落,电脑业者依旧冷眼旁观。1975年,CP/M V1.4 继承“王位”,开始大造舆论,加之Kildall 博士创建了Digital Research(数字研究公司),为CP/M呐喊欢呼,CP/M陆续被各国微机厂商采用,围绕他的软件也爆炸般地得到了开发。CP/M变红发紫,神话般普及,被推崇为“标准八位机软件总线”,Kildall 博士更是声名远播。

CP/M其实就是第一个微机操作系统,享有指挥主机、内存、磁鼓、磁带、磁盘、打印机等硬设备的特权。通过控制总线上的程序和数据,操作系统有条不紊地执行着人们的指令,如同指挥一台晚会或乐队,高效率地合奏美妙的乐章。

繁荣的CP/M家族不断添丁。运行在Intel 8080芯片上的CP/M—80;运行在8088、8086芯片上的叫CP/M—86;而在Motorola(摩托罗拉)68000 上运行的CP/M叫做CP/M-68K。CP/M—80、CP/M—86、CP/M-68K等组成了庞大的CP/M家族。

单用户的CP/M—80操作系统,后来发展成多用户的MP/M—80,单用户的CP/M—86又发展成并发的CP/M—86和多用户MP/M—86,它们成为家族的新生力量。

CP/M开创了软件的新纪元,称得上是计算机改朝换代的里程碑。
 
江山代有人才出,MS-DOS领风骚

七十年代末期,CP/M后院起火,其微机操作系统霸主地位开始动摇。

1979年,IBM公司为开发16位微处理器Intel 8086,请微软公司(Microsoft)为IBM PC设计一个磁盘操作系统,微软公司慷慨承诺,但当时手头仅有XENIX操作系统,XENIX操作系统要求处理器支持存贮管理和保护设备的功能,可PC机的CPU 8086/8088 均不具备此功能。微软公司急于满足PC机的要求,购买了由西雅图公司工程师Tim Paterson研制的、可在8088上运行的CP/M—86“无性系”——SCP—DOS操作系统的销售权,将SCP—DOS改称MS—DOS V1.0发表。为避“偷梁换柱”的嫌疑,微软公司又于1981年8月推出了支持内存为320KB 的MS-DOS 1.1版。由于蓝色巨人的推波助澜,操作系统软件市场几乎一夜之间呈现出一边倒的局面,CP/M地位岌岌乎可危。

想来CP/M也真可怜。MS-DOS功能虽然强大。但毕竟建立在CP/M—86基础上,说起来本该情同手足,亲如姐妹,但秀色可餐的“妹妹”抛弃了人老珠黄的“姐姐”,开始了黄金般的悠悠岁月。

随后,IBM 公司向微软公司购得MS-DOS使用权,将其更名为PC-DOS 1.0。MS-DOS又称PC-DOS,就是这个原因。

1982年,支持PC/XT 硬盘的微软MS-DOS 2.0问世,该版本首次具有多级目录管理功能,在人机界面上部分吸收了UNIX操作系统的优点。

1984年8月,3.0版公布,内存管理能力适应于IBM PC/AT及其兼容机。

1984年11月,支持网络的3.1版面向社会推出;1986年1月,MS-DOS 3.2版宣布,它支持3.5英寸软盘,格式化功能集中到外设驱动器;1987年4月,3.3 版推出,它适应于PS/2型;1989年,采用实地址方式运行的MS-DOS 4.0上市。

1991年6月,微软公司推出MS-DOS 5.0版,随即引发了一次极大的升级行动,该版本使人印象极深的特点是占有内存仅18K; 安装程序简便易学,而且一旦出现差错,还能使你保留旧的DOS。

1992年之后,微软公司不断推陈出新,6.0版,6.2版,6.3 版,至1995年8月,随着WINDOWS 95的亮相,MS-DOS终极版——7.0 版推出。不断更新的MS-DOS,膨胀了微软公司的欲望,进一步坚定了它全球软件业霸主的信心。
 
WINDOWS窗口不平凡,杀手一锏定乾坤

1991年,个人机软件市场有两件大事一直为电脑厂商、用户所津津乐道。一件是Microsoft 公司与IBM 公司“拜拜”,一件是IBM公司同“冤家对头”APPLE公司联姻修好。

拨开云雾见青天,这两件事的真正“祸首”,就是众口皆碑的WINDOWS 窗口软件。

1983年岁末,Microsoft公司传来捷报,一种被叫作窗口WINDOWS的软件开发成功。年轻气盛的微软公司决定“将革命进行到底”,投入大量人力物力继续研究WINDOWS 的改进升级;虽然外面的世界很无奈,但有志者毕竟事成,1990年5月,超凡绝伦的“艺术软件”——WINDOWS 3.0 对外公布——微软公司走出了IBM 的影子,“从此站起来了!”

WINDOWS 3.0哪里仅仅是一个升级版本,它展示了一个新天地、新世界!它拥有高达16M的扩充内存的直接存取,提供了可将硬盘空间做为虚拟内存的存储管理,提供了多任务管理和一组功能很强的应用程序。美观大方的图标(ICON),立体感逼真的按钮(BUTTON),丰富悦目的屏幕显示,以及种类繁多的字型、方便实用的数据交换,堪称开天辟地的绝世贡献!

WINDOWS软件一上市便引起了轰动,单是1990年,就销出了400多万套。新兴的超级富豪型公司DEC 和COMPAQ,欣然与Microsoft同舟共济。1991年,三家联手组成先进计算机环境(ACE)联盟。ACE 联盟更视WINDOWS 软件为掌上明珠,并在1992年推出了支持多服务器、高档机、适用于多处理器的WINDOWS NT系列产品。

WINDOWS成了Microsoft公司的杀手锏。盖茨董事长明白无误地告诉世界:“90年代Microsoft 公司的核心战略就是WINDOWS,台式机要用WINDOWS、多媒体要用WINDOWS、手写字符输入要用WINDOWS……任何计算机都要采用WINDOWS!”对家用电器领域,盖茨也毫不掩饰:“电视用户接口要采用WINDOWS。”

Microsoft是不是有些“小人得志”,如果你去问IBM,答案将是肯定的。

在1987年,Microsoft公司和IBM公司曾共同推出OS/2操作系统,两家的初衷是“生一个如花似玉的公主”,可OS/2却庞杂得象口“肥猪”,看花了眼的用户尽管钱囊鼓鼓,就是一毛不拔。几年下来,OS/2只零零星星销出了几十万件。两家从亲家变为仇敌,芥蒂就此滋生。

现在,从WINDOWS 95及WINDOWS 98的火爆程度来看,WINDOWS 的蜜月期还要持续相当一段时间。
 
无意争春,阁楼飞出金凤凰

1969年3月,美国电话与电报公司(AT&T)的贝尔实验室里昼夜不分,以肯·汤普森和丹尼斯·里奇为首的“雅皮士”们,为了改变平淡无奇的研究生活,正筹措着在贝尔实验室里抱出一个金娃娃:在PDP—7上运行的小型通用分时系统。上司AT&T既没计划也没指望他们有什么惊人的“大动作”,虽然1970年,这个叫作UNIX的多用户分时系统落地的哭声唤醒了沉睡的阁楼,但除了汤普森和里奇几个围着“小生命”对酒当歌,以示祝贺外,公司上下按部就班的生活里,UNIX连议论的话题都不是。

1971年11月,汤普森和里奇合作编写了UNIX第一版,实验室的专利组织成了UNIX的第一个用户;1972年6月,在增加了管道技术后,诞生了第二版。这时候的系统和实用程序全用汇编语言编成。

两个UNIX版已经具备了现代UNIX的许多重要思想,但AT&T无意争春,UNIX纵有闭月羞花之貌,也只落得“独倚望江楼”的孤苦伶仃。

1973年对UNIX来说,“是充满希望和收获的一年”。里奇在B语言的基础上研制成了C语言,汤普森和里奇用C语言改写了UNIX系统,并由此推出了第五版本V5。事实证明,后来的UNIX如此快速的推广和普及,得力于C的可移植性。

C语言的“祖师爷”是ALGOL 60。C语言生成目标代码质量好,程序执行效率高,兼具良好的可移植性,很快与UNIX难舍难分,恰似一对难兄难弟。

1974年7月,汤普森和里奇合写了“UNIX分时系统”一文,发表在著名的《ACM 通讯》上,UNIX第一次正式向外披露,引起了强烈反响,陆续有大专院校、研究所的研究人员们来一睹UNIX的风采。

那时候的AT&T真是大方得可以,对于喜欢UNIX的客户,一律免费赠送,为了不惹“维护”的麻烦,AT&T干脆连源程序也一并奉送。于是,贝尔实验室门庭若市。

1975年3月,第六版(V6)UNIX系统对外发表。这一年,AT&T下属的西方电气公司发觉美国各大专院校基本上配置了PDP 小型机,而UNIX是无可辩驳的最适宜于小型机的操作系统。决策者们猛然大彻大悟,“发财的机会早已来临!”

于是,西方电气公司小心翼翼地开始颁发使用UNIX的许可证,但对教育界所收费用大约只是政府和商业界的2%。也就是从这时开始,美国各大学开始开设UNIX课程,并不断地对它进行修改、扩充和再开发。

上述情况的出现,有利于UNIX系统的普及与发展,但主权单位AT&T对UNIX的失控,导致了UNIX的多轨道演化,不仅给AT&T种下了祸患,也给用户增添了烦恼。
 
一门流芳,厂商凯觎王中王

UNIX一门流芳,众皆垂涎,研究和编制UNIX新版的厂商,如夏夜繁星;各种同宗不同姓的家族版,搅得用户意乱神迷。

其间较有影响的,有七大谱线,它们是贝尔实验室正宗版;柏克莱大学标准版;AT&T商品版;Microsoft商品版;IBM AIX版;DEC版;SUN(孙氏)版。

谁都想统一UNIX,谁都统一不了UNIX。

公司与公司之间的竞争,首先靠强有力的技术,其次才是财力,而对那些财大气粗的公司来说,以强凌弱,以大吃小却是司空见惯的事。

在UNIX的统一和标准化工作中,有两大集团互不相让。一是以IBM公司为首的OSF(Open Software Fundation 开放软件基金会)集团,一是以AT&T为首的UI(UNIX International国际)集团。AT&T集团早就凯觎UNIX的霸主地位,事实上早在八十年代后期,它就有计划地在实施“版本的吞并”战略。该集团认为,只有两大谱线值得大动干戈,第一是柏克莱大学的4.2BSD和4.3BSD,这两个版本的性能都比它自己开发的UNIX System V 高,并占领着UNIX的高档产品市场;第二是Microsoft 版谱线中的XENIX System V,该版本性能虽比UNIX System V 低,但它占领着UNIX广大的低档产品市场,年销售量相当大。如能将上述两个版本溶入自己的UNIX System V 中,UNIX市场就是我AT&T的了。

AT&T雄心勃勃的合并计划已经取得了一些成绩。1988年11月,UNIX BSD(柏克莱版)也被收服,三者合并成的UNIX System V Release 4 版已可用15种语言操作互连。合并SUN OS 4.0的工作也在进行中。

AT&T“合并统一”的野心,引起了其它一些公司的担心和不满,1988年5月成立的、以IBM、DEC和HP等大公司为首的OSF,合作开发了一个开放式的软件环境OSF/1,给AT&T以迎头痛击。

OSF声称,它的OSF/1版要继续改进,而且明确的服务对象是DCE (分布式计算环境)。

为了与IBM公司为首的OSF对抗,1988年由SUN (孙氏)公司出面成立的UI,在AT&T的领导下,与OSF 展开了既竞争又合作的策略战。1990年4月9日,两集团曾试图修秦晋之好,但未能达成协议。尽管如此,OSF 和UI的总裁还是定期在一起开会,互通情况,使对方知道自己近期又要在UNIX上做什么文章。

两大集团的勾心斗角,使UNIX的航程在九十年代的航行中无法一帆风顺,即便是后来Internet的普及,各家服务器采用的UNIX系统仍然是五花八门。看来,UNIX的统一,还是一个美好而遥远的梦。
 
危机重重,软件进军工程化

由于操作系统向巨型化方向发展,60年代末期,国际上开始意识到软件危机。

软件危机表现为:软件成本急剧增长,软件开发周期长,进度难以控制,质量难以保证。

有人对美国所有的大型软件项目作了一次彻头彻尾的调查,结果令开发者们大为沮丧:几乎每一个项目都有错误——连享誉世界的“阿波罗”8号宇宙飞船也因软件错误,造成一部分信息丢失。“阿波罗”14号在10天飞行中出现了18个软件错。

由于计算机软件在整个“计算机大厦”中占着越来越重要的地位,以美国为首的西方发达国家,软件开发人员日益匮乏。在美国甚至出现了公共汽车售票员(根本没系统学习过计算机知识)被聘用为程序员的情况。

著名的计算机科学家Dijkstra(迪克斯特拉)在1968年西德卡米希召开的国际会议上说:“整个计算机软件事业建立在一个大骗局上”,并第一次向世界发出了“软件危机”的警告。

手工作坊式的软件开发,使得软件产品成本贵,质量低,可靠性差,效率低,不能按期交付使用。

为了解决危机,使软件业重获新生,美国和西欧的一些科学家于1967年、1968年在欧洲召开了两次软件可靠性国际会议,并开出了用“软件工程”解决危机的“药方”。

软件工程一词的确立,重新改写了“软件”的概念,是不是写出了一段可以运行出结果的程序就是软件?大多数专家对此持否定态度。中国专家叶祖尧教授认为,“软件不仅包括所有计算机程序,而且包括了所有过程、规则及文件资料。一句话,软件=程序+过程+文档。”

人们已经认识到:正如不能用制造独木船的手工方式来研制航空母舰一样,也不能用个人编制小型程序的方式来研制大型软件系统。

软件工程就是要借用建筑学上的工程原理,来作为开发计算机程序及有关资料的航标。

实践证明,建筑学上的“工程”可以架起埃菲尔铁塔,软件学上的工程也可以筑铸“长城奇观”。

七十年代初,IBM 尝试用软件工程的原理去研制纽约时报的情报检索系统,由于采用了工程学中的结构化概念,生产率提高了一倍。

按软件工程的观点,一个软件的计划需经过问题定义、可行性研究、要求分析、一般设计、系统设计、编码、测试、维护直至废弃等阶段。每个阶段都有确定的任务,并产生一定规格的文档,送交下一个阶段,而下一个阶段需要在前一个阶段的基础上开展工作。
 
漫长的道路,美好的未来

1950年,英国数学家图灵在论文《智能与机器》中提出了所谓“图灵试验”:测试者与另一屋子里的人或机器对话,若测试者无法辨别与之对话的是人还是机器,则认为机器具有了人的智能。

这是个大胆的猜想。

因为讫今为止,一般哲学观点都认为,只有人才具有思维能力。

“图灵试验”首次提出了“机器思维”的观念,为现代计算机科学又洞开了一个广阔的迷人天地。图灵本人,被尊称为“人工智能之父”。

“机器能否思维”的问题,几十年来,争论沸沸扬扬,有三大观点,三分天下。

(一)机器与人一样有思维能力。图灵是这种观点的代表,他们认为机器人能够达到与成年人智力相当的水平,电脑与人脑和平共处。

(二)机器比人更聪明。至七十年代,西方国家不仅有机器“超过人”、“统治人”的奇谈,而且还有机器“自成种族”、“继承宇宙”的怪论。美国普林斯顿大学教授维克多·帕斯尼可夫和戴维·萨帕尼科夫甚至撰文,说什么“人将成为计算机思想家的玩物或害虫,成为它们低级发展形式的回忆,保存在将来的动物园里。”

(三)机器可以模拟人的某些思维,但永远超不过人。著名的美籍匈裔数学家冯·诺依曼是这方面的代表人物,他指出:“电脑的语言只是数学的语言。”

这场争论将继续下去。

现代意义下的人工智能已形成了三个分支:知识工程、模式识别、机器人学,在漫长的道路上,取得了卓然的成就。

1970至1973年,苏联连续三次利用具有耳、眼、口、手、腿的机器人把“勘探人员”送上了月球。

1972年,美国麻省理工学院制造出了可学习一些英文,懂一些英文,回答一些句子的智能机器人。

1976年,阿倍尔和哈根、考什等人运用超级计算机证明了数学界著名的三大难题之一的“四色定理”,花费了1200多小时,判定了100 亿个逻辑。

1992年,美国自行研制的机器人已经可以下到火山口进行勘探。

1996年,全球瞩目的计算机“深蓝”由IBM 公司研制成功,旋即击败了多位一等一的国际象棋大师高手。

人工智能正在得到各国日益广泛的研究,有人把它与宇宙开发、生命的人工合成并列为当代最注目的三大科学活动。可以预言,不久以后,人工智能的果实将使每个人眉开眼笑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值