java的发展历史

Python010

java的发展历史,第1张

一、Java语言的发展历史

Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如:交互式电视,烤面包箱等。Sun内部人员把这个项目称为Green,那时World Wide Web还在图纸上呢。该小组的领导人是James Gosling,41岁。于1984年加盟Sun Microsystem公司,以前在一家IBM研究机构工作。他是Sun NeWs窗口系统的总设计师,虽然当时NeWs在技术上非常成功,但在商业上却完全失败,没有了Java那么好的运气。Gosling是一位非常杰出的程序员,GOSMACS也是Gosling写的,它是第一个用C实现的EMACS的文本编辑器。

在研究开发过程中,Gosling 深刻体会到消费类电子产品和工作站产品的开发哲学之间差异:消费类电子产品要求高可靠、费用低、标准化、使用简单,而工作站用户要求强大的计算能力,而不在此乎价格以及操作的复杂性。消费类电子产品用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准基础之上,一系列可选的方案,从8086-80586都可以上。

从C++开始 为了使整个系统与平台无关,Gosling首先从改写C++编译器着手。但是Gosling在改写过程中感到仅C++是无法满足需要的,于是在1991年6月份开始准备开发一个新的语言,那么给它起一个什么名字呢? Gosling回首向窗外望去,看见一棵老橡树,于是建一个目录叫Oak,这就是Java语言的前身。(后来发现Oak已是Sun公司的另一个语言的注册商标,才改名为Java,即爪哇,太平洋上一个盛产咖啡的岛屿的名字)。

Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行软硬件环境,他要建立一个系统,这个系统运行于一个巨大的、分布的、异质的网络环境中,完成各电子设备之间的通讯与协同工作。Gosling在设计中采用了虚机器码(Virtual Machine Code)方式。即Java语言编译后产生的是虚机器码,虚机器码运行在一个解释器上,每一个操作系统均有一个解释器,这样一来,Java就成了平台无关语言。这和Gosling设计的Sun NeWs窗口系统有着相同的技术味道,在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器,这样便保证了用户界面的良好的可移植性。

当Patrick Naughton加入该小组后,整个工作进展神速。Naughton也是Sun公司的技术骨干,曾经是Open Windows的项目的负责人。经过17个月的奋战,整个系统胜利完成。它是由一个操作系统,一种语言(Java),一个用户界面,一个新的硬件平台,三块专用芯片的构成。而通常情况下,这样的项目在Sun公司要75个人干三年。项目完成后,在Sun公司内部做一次展示和鉴定,观众的反应是: 在各方面都采用了崭新的、非常大胆的技术。许多参观者对Java留下了非常深刻的印象,特别得到Sun的二位领导人Scott McNealy和Bill Joy的关注,但Java的前途未卜。

初战告败

接着,Java项目的工作人员开始做应用规划,着手成立一家公司,从事消费类电子产品的开发,这家公司就是FirstPerson Inc.。公司的第一个项目就是Time-Warner的投标项目,顶置盒式操作系统和请求式电视技术。虽然FirstPerson Inc.在技术毫不逊色于任何公司,但是由于经营策略上的失误,败给了SGI。FirstPerson一直到1994年初仍在坚持开发专用的顶置盒式操作系统,但实践证明,这个市场尚未成熟。例如:好几家交互式有线电视网的实验都以失败告终。

Naughton立即认识到研究方向应该转移。在Naughton的努力下,研究开始向在线服务,CD-ROM和基于网络的台式机方向转移。最后FirstPerson解散,一部分人去了Sun Interactive开发数字视频数据服务器,而另一部分开始把Java用于基于网络的台式机系统。

Java语言的转折点

到了1994年,WWW已如火如荼的发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台。它应是一种实时性较高,可靠安全,有交互功能的浏览器。于是Gosling决定用Java开发一个新的Web浏览器。

二、Java发展史

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。

Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

三、Java语言的发展历史

任职于太阳微系统的詹姆斯•高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。

由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。

Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java语言的发展历史分为以下几个阶段:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言。

希望用于控制嵌入在有线电视交换盒、PDA等的微处理器1994年将Oak语言更名为Java1998年JDK1.2时,更名为Java 2 Platform分为标准版J2SE,企业版J2EE,微型版J2MEJava 既安全、可移植,又可跨平台,而且人们发现它能够解决Inter 上的大型应用问题Inter使Java成为网上最流行的编程语言Java对Inter的影响也意义深远B/S的兴起 &C/S的没落。

四、JAVA的发展历史是什么情况

一、JDK前传

在这个世界上,熟悉Java历史的人非常多,如果要问一个人Java是从哪年诞生的,也许大多数人都会回答是1995年(这个非常好记,因为微软的Windows95也是在这一年发布的)。但事实上Java早在上个世纪90年代初就开始酝酿了。

1991年4月,Sun公司的James Gosling领导的绿色计划(Green Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行。而Green项目组的成员一开始使用C++语言来完成这个项目, 由于Green项目组的成员都具有C++背景,所以他们首先把目光锁定了C++编译器,Gosling首先改写了C++编译器,但很快他就感到C++的很 多不足,需要研发一种新的语言Java来替代它,一杯飘香的咖啡成为了它的标志。

在17 个月后,整个系统完成了,这个系统是更注重机顶盒式的操作系统,不过在当时市场不成熟的情况下,他们的项目没有获得成功,但Java语言却得到了Sun总裁McNealy的赏识。

直至 1994年下半年,由于Inter的迅猛发展和环球信息网 WWW的快速增长,第一个全球信息网络浏览器Mosaic诞生了;此时,工业界对适合在网络异构环境下使用的语言有一种非常急迫的需求;Games Gosling决定改变绿色计划的发展方向,他们对Oak进行了小规模的改造,就这样,Java在1995年的3月23日诞生了!Java的诞生标志着互 联网时代的开始,它能够被应用在全球信息网络的平台上编写互动性及强的Applet程序,而1995年的Applet无疑能给人们无穷的视觉和脑力震荡。 我们姑且将Java的这段历史称为Java前传吧。

其实Java的诞生颇有那么一股“有心栽花花不开,无心插柳柳成阴”的味道。就象当年Unix和它的前身MULTICS系统一样。

二、JDK的幼年时期(1995~1998)

Sun继Green项目后又经过了几年的研究,终于在1995年5月23日在SunWorld'95上正式发布Java和HotJava浏览器。在同 年,有很多公司先后获得了Java许可证,如Netscape在1995年8月,Oracle在1995年10月分别获得了Java许可证。Sun在 1995年发布第一个Java版本后,于1996年1月宣布成立新的业务部门──JavaSoft部,这个部分主要负责开发、销售并支持基于Java技术 的产品,由AlanBaratz先生任总裁。

在1995年Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程 序,必须要有一个的强大的开发库支持还行。因此,Sun在1996年1月23日发布了JDK1.0。这个版本包括了两部分:运行环境(即JRE)和开发环 境(即JDK)。在运行环境中包括了核心API、集成API,用户界面API,发布技术,Java虚拟机(JVM)五个部分。而开发环境还包括了编译 Java程序的编译器(即javac)。在JDK1.0时代,JDK除了AWT(一种用于开发图形用户界面的API)外,其它的库并不完整。

Sun在推出JDK1.0后,紧跟着,Sun在1997年2月18日发布了JDK1.1。JDK1.1相对于JDK1.0最大的改进就是为JVM增加了 JIT(即时编译)编译器。JIT和传统的编译器不同,传统的编译器是编译一条,运行完后再将其扔掉,而JIT会将经常用到的指令保存在内容中,在下次调 用时就不需要再编译了。这样JDK在效率上有了非常大的提升。

Sun在推出JDK1.1后,接着又推出了数个JDK1.x版本。自从Sun推出Java后,JDK的下载量不断彪升,在1997年,JDK的下载量突破了220,000,而在1998年,JDK的下载量已经超过了2,000,000。

五、Java语言的发展历史

Java语言的历史

Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如:交互式电视,烤面包箱等。Sun内部人员把这个项目称为Green,那时World Wide Web还在图纸上呢。该小组的领导人是James Gosling,41岁。于1984年加盟Sun Microsystem公司,以前在一家IBM研究机构工作。他是Sun NeWs窗口系统的总设计师,虽然当时NeWs在技术上非常成功,但在商业上却完全失败,没有了Java那么好的运气。Gosling是一位非常杰出的程序员,GOSMACS也是Gosling写的,它是第一个用C实现的EMACS的文本编辑器。

在研究开发过程中,Gosling 深刻体会到消费类电子产品和工作站产品的开发哲学之间差异:消费类电子产品要求高可靠、费用低、标准化、使用简单,而工作站用户要求强大的计算能力,而不在此乎价格以及操作的复杂性。消费类电子产品用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准基础之上,一系列可选的方案,从8086-80586都可以上。

从C++开始 为了使整个系统与平台无关,Gosling首先从改写C++编译器着手。但是Gosling在改写过程中感到仅C++是无法满足需要的,于是在1991年6月份开始准备开发一个新的语言,那么给它起一个什么名字呢? Gosling回首向窗外望去,看见一棵老橡树,于是建一个目录叫Oak,这就是Java语言的前身。(后来发现Oak已是Sun公司的另一个语言的注册商标,才改名为Java,即爪哇,太平洋上一个盛产咖啡的岛屿的名字)。

Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行软硬件环境,他要建立一个系统,这个系统运行于一个巨大的、分布的、异质的网络环境中,完成各电子设备之间的通讯与协同工作。Gosling在设计中采用了虚机器码(Virtual Machine Code)方式。即Java语言编译后产生的是虚机器码,虚机器码运行在一个解释器上,每一个操作系统均有一个解释器,这样一来,Java就成了平台无关语言。这和Gosling设计的Sun NeWs窗口系统有着相同的技术味道,在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器,这样便保证了用户界面的良好的可移植性。

当Patrick Naughton加入该小组后,整个工作进展神速。Naughton也是Sun公司的技术骨干,曾经是Open Windows的项目的负责人。经过17个月的奋战,整个系统胜利完成。它是由一个操作系统,一种语言(Java),一个用户界面,一个新的硬件平台,三块专用芯片的构成。而通常情况下,这样的项目在Sun公司要75个人干三年。项目完成后,在Sun公司内部做一次展示和鉴定,观众的反应是: 在各方面都采用了崭新的、非常大胆的技术。许多参观者对Java留下了非常深刻的印象,特别得到Sun的二位领导人Scott McNealy和Bill Joy的关注,但Java的前途未卜。

初战告败

接着,Java项目的工作人员开始做应用规划,着手成立一家公司,从事消费类电子产品的开发,这家公司就是FirstPerson Inc.。公司的第一个项目就是Time-Warner的投标项目,顶置盒式操作系统和请求式电视技术。虽然FirstPerson Inc.在技术毫不逊色于任何公司,但是由于经营策略上的失误,败给了SGI。FirstPerson一直到1994年初仍在坚持开发专用的顶置盒式操作系统,但实践证明,这个市场尚未成熟。例如:好几家交互式有线电视网的实验都以失败告终。

Naughton立即认识到研究方向应该转移。在Naughton的努力下,研究开始向在线服务,CD-ROM和基于网络的台式机方向转移。最后FirstPerson解散,一部分人去了Sun Interactive开发数字视频数据服务器,而另一部分开始把Java用于基于网络的台式机系统。

Java语言的转折点

到了1994年,WWW已如火如荼的发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台。它应是一种实时性较高,可靠安全,有交互功能的浏览器。于是Gosling决定用Java开发一个新的Web浏览器。

六、Java发展史

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。

Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

七、java的发展趋势

Java未来的应用前景,从历史来看,Java技术自1995年问世以来,在我国的应用和开发也得到了迅速普及,总体来看,这些应用主要集中于企业应用开发。

据有关单位调查显示,从开发领域的分布情况上看Web开发占了一半以上,为57.9%,JavaME移动或嵌入式应用占15%,C/S应用占11.7%,系统编程占15.4%。近30%的开发者用Java从事C/S应用或系统级应用的开发。

在桌面应用上,尽管Java在桌面GUI方面尚有不尽如人意之处,但仍然有很多开发者用来开发运行在多种操作系统平台上的桌面应用。具体应用在如下几个领域:1.行业和企业信息化由于Sun、IBM、Oracle、BEA等国际厂商相继推出各种基于Java技术的应用服务器以及各种应用软件,带动了Java在金融、电信、制造等领域日益广泛的应用。

如清华大学计算机系利用Java、XML和Web技术研制开发了多个软件平台,东方科技的TongWeb、金碟的Apusic、中创的Inforweb等J2EE应用服务器及和佳ERP和宝信ERP等ERP产品,已在许多企业得到应用。2.电子政务及办公自动化东方科技、金碟、中创等开发的J2EE应用服务器在电子政务及办公自动化中也得到应用:如金碟的Apusic在民政部、广东省市工商局应用;东软电子政务架构EAP平台在社会保险、公检法、税务系统得到应用;中创的Inforweb等Infor系列中间件产品在国家海事局、山东省 *** 及中国建设银行、民生银行等金融系统应用;无锡永中科技基于Java平台开发的国产化集成办公软件“永中Office”也已在一些省市 *** 部门得到应用。

3.嵌入式设备及消费类电子产品无线手持设备、通信终端、医疗设备、信息家电(如数字电视、机顶盒、电冰箱)、汽车电子设备等是今年以来比较热门的Java应用领域。在这方面的应用有中国联通CDMA1X网络中基于Java技术的无线数据增值服务——UniJa。

4.辅助教学在辅助教学方面,东南大学与中兴通讯公司开发了远程教学系统,用于本地网上教学、课后学习和异地远程教育,清华大学用Java进行了“计算机软件基础课”教学改革,分析研究Java教学软件BlueJ的汉化方案,电子科技大学应用JavaRMI技术进行远程教育,西安电力高等专科学校采用Java技术,开发了交互式电站仿真系统,实现电站锅炉仿真、锅炉膛火焰仿真,为实现网上仿真进行有益探索。就Java程序设计语言自身的发展前景来讲,定会与互联网的发展需求邦定,具体体现在以下几个方面:1)所有面向对象的应用开发。

2)软件工程中需求分析、系统设计、开发实现和维护。3)中小型多媒体系统设计与实现。

4)消息传输媒体。5)分布计算交易管理平台应用。

6)Inter的系统管理功能模块的设计,包括Web页面的动态设计、网站信息提供管理和交互操作设计等。7)Inter(企业内部网)上完全基于Java和Web技术的应用开发。

8)Web服务器后端与各类数据库连接管理器(队列、缓冲池)。9)安全扫描系统(包括网络安全扫描、数据库安全扫描、用户安全扫描等)。

10)网络/应用管理系统。11)其他应用类型的程序。

Java语言的应用推动着网络应用朝着更加高效、便捷、实用的方向发展,并最终成为IT产业极力推动的一项技术。我国对于Java语言的应用多放在企业互联网作用方面,更加重视网络应用过程中无可 *** Java/J2EE技术,并将该技术作为应用程序开发过程中的首选。

无论在移动设备、消费品,还是嵌入式设备中,Java语言均得到了广泛的应用,甚至延伸到了IC领域。未来Java语言将在嵌入式及移动设备中得到进一步的拓展,在各种电子信息产品中都有Java的应用。

特别是移动设备领域,Java语言的应用效果将更加显著,并将定位由系统的通信终端转变为个人信息端。目前,Sun公司已将Java核心源代码公开,这将为开发人员进一步开发应用Java语言提供有力的条件,并为推动Java的进一步发展,维护其技术兼容性奠定有力的基础。

Java开源将会吸引更多程序人员的加入,并将进一步完善Java语言,并最终 *** 整个IT行业的发展。总之,Java语言作为一种发展迅速的语言程序,已经深刻揭示了程序编写过程的精髓,并借助其严谨的结构与间接的编写过程,为Java语言的未来发展提供了重要保证。

如今,有关Java语言方面的研究正朝着服务器端优势应用系统方面延伸,相信未来Java语言必将具有更加广泛的应用,也必将会给IT行业的发展起到更有力的促进作用。

不管学哪门语言,第一个HelloWorld程序成功运行起来的时候,代表着你的学习已经跨进了一小步。做这个java实验之前,读者最少要在自己的电脑上安装好JDK(包括配置好环境变量),如果读者还不会安装JDK和配置环境变量可以看作者的另一遍经验。

编写并保存代码。打开记事本编写如图1所示代码,图1代码为(注意输入代码时输入法一定切换到英文输入状态下):

public class HelloWorld {

/**

* 输出一行字符串“Hello World!”

* @param args

*/

public static void main(String[] args) {

System.out.println("Hello World!")

}

}

在D盘建立一个JAVA文件夹用于保存代码,保存的时候一定要注意,如图2所示,“保存类型(T)”要选择“所有文件(*.*)”,“文件名(N)”一定要为 HelloWorld.java 。如图3所示,保存后到D:JAVA下检查下文件名是否正确,HelloWorld.java.txt,HelloWorld.txt都是错误的文件名。JAVA程序代码后缀为.java,文件名常常要求保持和类名一致。JAVA语言是严格区分大小写字母的,但是Windows的文件名却不区分大小写。

启动命令提示符并进入到D:JAVA文件夹。如图1所示,按下WIN+R键启动运行命令框,输入cmd命令后回车,就可以启动命令提示符窗口。然后在命令提示符窗口中输入下面命令进入D:JAVA目录:

>D: <回车>

>cd JAVA <回车>

调用编译指令javac把HelloWorld.java转换为字节码文件HelloWorld.class 。如下图所示,执行指令:

>javac HelloWorld.java <回车>

执行指令如果没提示什么信息就是最好的信息,这时检查JAVA文件夹就会发现多了一个.class文件,这就是字节码文件了。如果提示错误信息就要回过头检查了。首先检查JDK环境变量是否配置好,然后检查类名和文件名是否一致,再检查代码是否有用正文输入法输入等等。

运行程序。代码转换为.class 文件后就可以在JVM虚拟机下运行了。在命令提示符敲入命令:

>java HelloWorld <回车>

如图所示,回车后打印输出:

HelloWorld!

注意,这时实际上是运行HelloWorld.class,但是命令中并不用加后缀名。

分析第三步的伪编译原理。如图所示,.java后缀的是源代码,一个或者多个源代码要经过java编译器生产.class后缀的字节码。字节码是和平台无关的,和C语言编译生成平台相关的机器码是不一样的。机器码可以只能在对应的平台执行,字节码执行是平台无关的但是必须有解释器。

分析第四部JAVA程序的执行过程。图为.class文件被读取后进行解释为平台相关机器码执行的过程。和编译型语言(比如C)程序最大的不同是JAVA程序经过解释器转换为和平台相关的机器码才可执行,可见这个过程在执行过程中动态解释,而编译型语言(比如C)是在执行之前就编译成了和平台相关的机器码了。这也是JAVA语言可以“一次(伪)编译,到处运行”的重要原因。

十大事件与Java相关的四十个名字

1990-1994:Java缘起

文/孟岩

Larry Wall说,优秀程序员应有的三个特点:懒惰、急躁和傲慢。Java就是诞生在一群懒

惰、急躁而傲慢的程序天才之中。

1990年12月,Sun的工程师Patrick Naughton被当时糟糕的Sun C++工具折磨的快疯了。

他大声抱怨,并威胁要离开Sun转投当时在Steve Jobs领导之下的NeXT公司。领导层为了

留住他,给他一个机会,启动了一个叫做Stealth(秘密行动)的项目。随着James

Gosling等人的加入,这个项目更名为Green。其目标是使用C++为嵌入式设备开发一种新

的基础平台技术,James Gosling本人负责开发一个SGML编辑器。正如人们事后分析的那

样,这位天才的程序员太懒惰,所以没有把C++学好,开发中碰了一头包太急躁??所以

不愿意停下来读读Scott Meyers的新书《Effective C++》太傲慢??所以轻易地决定开

发一中新的编程语言。他把这种语言命名为C++++--,意思是C++“加上一些好东西,减

去一些坏东西”。显然这个糟糕的名字不可能长命百岁,很快这种颇受同伴喜爱的小语

言被命名为Oak。

到了1992年9月,Oak语言连同Green OS和一些应用程序一起发布在称做Start 7的小设备

上,从而使之有了第一次精彩的亮相。随后,Sun开了一家名为FirstPerson的公司,整

个团队被转移到这家公司里研发机顶盒,以投标时代华纳公司的一个项目。这帮天才被

技术狂热所鼓舞,开发出了一个高交互性的设备,结果没想到时代华纳公司和有线电视

服务商并不愿意用户拥有那么大的控制权,从而在竞标之战中败给了SGI。Oak的锋芒之

锐,竟然把客户都给吓懵了。Sun沮丧地关闭了FirstPerson,召回了整个团队。事实证

明,传统行业中那些脑满肥肠的保守主义者是腐朽没落的。回去!回到激情澎湃的IT产

业,抓住互联网的大潮,这才是出路!1994年,Oak被命名为Java,针对互联网的新一轮

开发如火如荼,一切已经就绪,熔岩在地下奔流,火山即将喷发。

1995: Java香浓世界

文/马伟

1995年,Sun正式对外公布了Java,并且发布了JDK 1.0。这种外形酷似C++,却包含一颗

Smalltalk般纯洁的面向对象之心的全新程序设计语言及其平台,几乎在一夜之间就成为

软件产业的新宠儿。Java当时仅仅被用来为网站制作一些动态应用,诸如动画图片之类,

但这仍然引起了很多Web开发者们的注意,他们非常渴望有一种安全的语言,可以在静态

的HTML网页上制作动画图片。Sun最终把Java集成到NetScape浏览器。同时因为它具有

“只写一次,随处运行”的特性,而引起了很多开发者的注意,他们可以再也不用为了

使程序能够在不同型号的硬件上运行而耗费大量的时间来编译代码了。

当时的Web浏览器的出现也为Java的出现起到了很好的推动作用,通过Java和Web浏览器

的结合,人们似乎看到了什么,有人甚至预言PC将在一两年内退出历史的舞台,取而代

之的是基于Java的浏览器应用程序,通过网络计算设备来进行应用。Java的出现为当时

的软件产业带来了无限的遐想。

1996:Java大跃进,盟主地位就此定

文/马伟

SUN在1996年一开始首先成立了JavaSoft组织,并在1月23日正式发布自己的Java 1.0,

作为20世纪业界出现的最重要的技术之一,Java引起了编程世界的革命。直到现在,

Java仍然是互联网上最流行的语言。

在Sun正式发布Java 1.0之后,Java这门新生的语言就拥有了自己的会议??JavaOne,这

次会议初试啼音就吸引了600多名参与者。除了拥有这么多的积极参与者来进行Java的开

发之外,各大知名公司也纷纷向Sun申请Java的许可。一时间,NetScape、惠普、IBM、

Oralce、Sybase甚至当时刚推出Windows 95的微软都是Java的追随者。

Java的应用就像是世界上的顶级玩家们组成的一个公开联盟,告诉全世界我们大家就是

都在用着Java。也正是因为如此,Java也找到了自己的归宿。现在的J2EE已经成为中大

型企业级应用的标准,成为承接数据库和Web之间的一个重要桥梁。

当年Java的机会实在太多了,以至于很难知道到底该做什么。最终Java在应用服务器市

场获得了难以取代的地位,也确定了J2EE的发展方向,并且仍将延续下去。

1997-2001: 微软与Sun的Java官司

文/孟岩

Java诞生的1995年,正是微软在软件产业地位达到巅峰的时代,Windows 95发布时的风

光场面给人们留下的深刻印象至今难忘。尽管如此,作为最卓越的技术领袖,比尔?盖茨

仍然敏锐地注意到Java。当他了解了Java的一些细节之后,给予了这样的评价:“Java是

很长时间以来最优秀的程序设计语言。”基于此,微软于1996年3月申请并获得了Java许

可证。微软对于Java的这一热情态度在当时大大提高了人们对Java的兴趣和信心,但也

有不少人担心微软会依靠自己强大的影响力在标准之外另立标准,从而破坏Java的纯洁

性。

果然,从1997年发布Visual J++的第一个版本开始,微软就开始在Java中掺入自己的私

有扩展。这毫无疑问引起Sun的高度重视。1997年10月,Sun向美国加州地方法院起诉微

软公司违反两公司就微软使用Java技术所签定的合同,指控微软公司在自己的Java产品

中做了“不恰当的修改”,违反了合同中承诺向用户提供Java兼容产品的条款。这一官

司旷日持久,直到2001年1月双方达成和解,微软将继续提供采用Sun开发的Java技术的

现有产品(包括测试版)。不过,Sun有限制地仅对包括Java 1.1.4的微软产品提供许

可。到了2001年7月,微软公布新版的Windows XP将不再支持Sun的JVM,并且推出了.NET

平台与Java分庭抗礼。

现在回过头去看,当时的这一场官司对Java世界产生了深远的影响。如果没有这一场官

司,也许很多Java程序员都在使用Visual J++,基于WFC开发Windows客户端程序,同时

不得不面对被两个不同的事实标准所分裂的Java世界。