一、Java的发展史
1 什么是Java
美国硅谷有一句行话,每10年~15年有一次轮回。最近的一次轮回就是从Java开始。
Java是一个由Sun公司开发而成的新一代编程语言。使用它可在各式各样不同种机器、不同种操作平台的网络环
境中开发软件。不论你使用的是哪一种WWW浏览器,哪一种计算机,哪一种操作系统,只要WWW浏览器上面注明
了“支持Java”,你就可以看到生动的主页。Java正在逐步成为Internet应用的主要开发语言。它彻底改变了
应用软件的开发模式,带来了自PC机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。
Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如,交互式电视、烤面包箱等。
Sun内部人员把这个项目称为Green,那时WorldWideWeb还在图纸上呢。该小组的领导人是JamesGosling,是一
位非常杰出的程序员。他出生于1957年,于1984年加盟SunMicrosystem公司,之前在一家IBM研究机构工作。他
是SunNeWs窗口系统的总设计师。也是第一个用C实现的EMACS的文本编辑器COSMACS的开发者。
在研究开发过程中,Gosling深刻体会到消费类电子产品和工作站产品在开发哲学上的差异:消费类电子产品要
求可靠性高、费用低、标准化、使用简单,用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需
要建立在一个标准基础之上,具有一系列可选的方案,从8086到80586都可以选取。
2 从C开始
为了使整个系统与平台无关,Gosling首先从改写C编译器着手。但是Gosling在改写过程中感到仅C是无法满足
需要的,于是在1991年6月份开始预备开发一个新的语言,那么给它起一个什么名字呢?Gosling回首向窗外望去
,看见一棵老橡树,于是建一个目录叫Oak,这就是Java语言的前身(后来发现Oak已是Sun公司另一个语言的注
册商标,才改名为Java,即太平洋上一个盛产咖啡的岛屿的名字)。
Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行的软硬件环境。他要建立一个系
统,这个系统运行于一个巨大的、分布的、异构的网格环境中,完成各电子设备之间的通信与协同工作。
Gosling在设计中采用了虚机器码(VirtualMachineCode)方式,即Java语言编译后产生的是虚拟机,虚拟机运
行在一个解释器上,每一个操作系统均有一个解释器。这样一来,Java就成了平台无关语言。这和Gosling设计
的SunNeWs窗口系统有着相同的技术味道。在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的
Postscript解释器,这样便保证了用户界面的良好的可移植性。
PatrickNaughton也是Sun公司的技术骨干,曾经是OpenWindows项目的负责人。当Naughton加入该小组后,整个
工作进展神速。经过17个月的奋战,整个系统胜利完成。它是由一个操作系统、一种语言(Java)、一个用户
界面、一个新的硬件平台、三块专用芯片构成的。通常情况下,这样的项目在Sun公司要75个人干三年。项目完
成后,在Sun公司内部做了一次展示和鉴定,观众的反应是:在各方面都采用了崭新的、非常大胆的技术。许多
参观者对Java留下了非常深刻的印象,非凡得到Sun的两位领导人ScottMcNealy和BillJoy的关注,但Java的前
途未卜。
3 Java语言的转折点
到了1994年,WWW已如火如荼地发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依靠于任何硬件平台
和软件平台,它应是一种实时性较高、可靠安全、有交互功能的浏览器。于是Gosling决定用Java开发一个新的
Web浏览器。
这项工作由Naughton和JonathanPayne负责,到1994年秋天,完成了WebRunner的开发工作。WebRunner是
HotJava的前身,这个原型系统展示了Java可能带来的广阔市场前景。WebRunner改名为HotJava,并于1995年5
月23日发表后,在产业界引起了巨大的轰动,Java的地位也随之而得到肯定。又经过一年的试用和改进,
Java1.0版终于在1996年年初正式发表。
二、Java带来的影响
Java虽出现的时间不长,但已被业界接受,IBM、Apple、DEC、Adobe、SiliconGraphics、HP、Oracle、
Toshiba、Netscap和Microsoft等大公司已经购买了Java的许可证。Microsoft还在其Web浏览器EXPlorer3.0版
中增加了对Java的支持。
另外,众多的软件开发商也开发了许多支持Java的软件产品。如:Borland公司的基于Java的快速应用程序开发
环境Latte;Metrowerks公司和NaturalIntelligence公司分别开发的基于Machintosh的Java开发工具;Sun公司
的Java开发环境JavaWorkshop;Microsoft也开发出系列Java产品。数据库厂商如
Illustra,Sybase,Versant,Oracle都在开发支持Html和Java的CGI(CommonGatewayInterface)。在以网络为中
心的计算时代,不支持HTML和Java,就意味着应用程序的应用范围只能限于同质的环境。
Intranet正在成为企业信息系统最佳的解决方案。它的优点表现在:便宜、易于使用和治理。用户不管使用何
种类型的机器和操作系统,界面是统一的Web浏览器,而数据库、Web页面、应用程序(用Java编的applet)则
存在WWW服务器上。开发人员只需维护一个软件版本,治理人员省去了为用户安装、升级、培训之苦,用户则只
需一个操作系统,一个Internet浏览器足矣。
我们可以设想未来的计算方式,每个HomePage的实质是一个多媒体应用程序,这些程序用Java来开发。Java应
用程序运行在异质的机器、异质的操作系统之上,甚至于电冰箱、烤面包箱、防盗电子设备之中,用Internet
把所有的电子设备连接起来,通过TCP/IP进行信息的交流。Java应用程序之间既可以交换消息,也可以交换程
序(一个Java的小应用程序applet)。或许有一天,我们可以在Netscape浏览器里查看电冰箱的温度,向烤面
包箱发一个电子邮件。
Java的出现是计算机信息交换的一个重要里程碑。在单机时代,程序进程之间靠共享存储进行变量交换;在网
络时代,运行在不同宿主机上的程序按网络协议进行无格式的消息(二进制字符流)交换,消息的语义由交换
程序双方维护;在Java时代,运行在网络上的程序进程交换的是小应用程序(applet)。小应用程序是什么?它
是一个对象,由一组属性和方法构成,是一个可执行的实体;不仅有数据的状态,而且有定义在数据上的操作
。未来可能进行代表(Agent)交换,代理有一定的智能性,那便是信息交换的更高级阶段。
随着Internet的崛起、Java的诞生,巨型的、臃肿的应用软件开始向小型化发展,由众多“生活”在Internet
上的小应用程序(applet)相互协作完成信息的处理与传递。Java会加速应用软件的小型化、网络化的趋势。
随着Internet的发展,软件必然是面向“大众”,而不是“少数人”的奢侈品,薄利多销将是网络应用软件的
重要特点。分布式对象技术保证了用多少,下载多少。
Java连同Internet,WWW正在改变应用软件的开发和使用方式,一切都要围绕着网络,围绕着平台无关。很多人
认为,Word,Excel等传统的信息处理工具都必然走向萎缩,因为它们是单机时代的产物。信息的价值在于使用
和共享,Internet和Web是信息的使用和共享最快捷、最便宜的方式,Word将演化成为Web写作工具,Excel则将
演化成Web上的电子表格。