摘 要:ava是目前全世界使用人数最多的语言,普及度大约为20%,遥遥领先于其他语言。由于Java属于开源的语言,其支持的框架也五花八门,衍生品也远多于其他语言。一个仅仅诞生不到20年的语言怎么会取得如此的成就能?让我们从头说起。
关键词:JAVA;发展史;面向对象
一、 Java的昨天
Java平台和语言最开始只是Sun公司在1990年12月开始研究的一个内部项目。工作小组使用的是内嵌类型平台,可以用的资源极其有限,很多成员发现C太复杂以至很多开发者经常错误使用。他们发现C 缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。 起初,工程师门试图修改和扩展C的功能,他们把它称之为C--,但是后来放弃了。他们将要创制出一种全新的语言,被命名为“Oak”。
1994年6、7月间,在经历了一场历时三天的头脑风暴的讨论后,团队决定再一次改变努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变。作为原型,帕特里克?诺顿写了一个小型万维网浏览器WebRunner,后来改名为HotJava。
Sun公司虽然推出了Java,但这仅仅是一门编程语言,如果想开发比较大的项目则必须要有一个强大的开发类库,于是Sun在1996年推出了JDK1.0。该版本包括两个方面:JRE(Java RunTime Eviroment),JDK(Java Developement Kit)。在JRE中包括API(核心API,用户界面API,集成API),发布技术,JVM(Java Virturl Meachial);JDK包括编译Java程序的编译器(javac命令)。Sun在1997年推出JDK1.1,新增了JIT—即时编译器。它与传统编译器的区别在于,传统编译器只能编写一条语句,运行完后扔掉,再编写下一条语句;而JIT则是将经常用到的指令保存在内存中,当下次调用时不需要再编译,大大提高了JDK的效率。
二、JAVA的今天
虽然从JDK1.4开始,Java的性能有了显著的提高,但Java又面临着另一个问题,那就是复杂。
Java是纯面向对象语言,但它对一些高级的语言特性(如泛型,增强的for语句)并不支持。而且和Java相关的技术,如EJB2.x,也由于它们的复杂而很少有人问津。也许是Sun意识到了这一点。因此,在2004年10月,Sun发布了我们期待已久的版本:JDK1.5,同时,Sun将JDK1.5改名为J2SE5.0。和JDK1.4的主题是性能,而J2SE5.0的主题是易用。Sun之所以将版本号1.5改为5.0,就是预示着J2SE5.0较以前的J2SE版本有着很大的改过。2008年9月J2SE6的问世进一步对应用进行了升级。
虽然Java是目前最广泛使用的编程语言,比所有脚本语言加起来的总数还多,但由于Java平台支持由不同脚本语言编写的应用程序运行。例如,Java虚拟机(JVM)可以执行用Java、Rexx、Ruby、JavaScript、Python、PHP、Groovy、Clojure和Scala编写的程序,所以其仍是大多数企业和Web应用程序开发首选的语言/平台,并继续保持增长,Java是免费提供给开发者使用的,许多大学的计算机系也选择Java作为编程语言课程,虽有这些光环笼罩,但这并不意味着我们不应该重新审视Java的未来发展方向,特别需要关注Sun被收购后的这段时间。
三、JAVA的明天
在Oracle大力支持下,Java的未来战略目标是加强和继续扩大其在新领域的应用,简化,优化,并将Java平台纳入新的部署架构,加大对Java社区的投资,允许社区更多地参与。
在JavaSE方面,Oracle将推动Java成为使用最多,最具效率和世界上最流行的编程平台,也将推动Java在更多的嵌入式设备中使用。Kurian表示会保留Java社区进程(Java Community Process,JCP)推动Java的发展。而今年最受关注的当属最近发布的Java SE 7和 Oracle的JRockit虚拟机和Sun的HotSpot的合并。
其它改进包括持续的性能改进,以及许多语言方面的增强,包括增加的闭包,在switch语句中对Strings的支持,以及多块异常捕获,闭包是一个有争议的功能,它是通过使用匿名的Java内部类实现的。
在JavaME方面,Oracle将统一Java ME和Java SE API,彻底消除Java市场的分裂。还要改善Java ME的启动时间和整体性能,改进移动设备的电源管理,并努力支持新兴嵌入式设备(MID,媒体播放器等),以及改进JavaFX和JavaFX Mobile。
在JavaFX方面,Oracle将增加对其投资,为RIA应用提供无与伦比的体验,将从以下方面入手:基于可视化组件创建一个设计范式;为JavaFX应用程序创建一个丰富的UI扩展库; 提升所有平台的JavaFX性能;增强跨设备移植JavaFX应用程序的能力;与Java,JavaScript和HTML 5无缝集成;支持新兴设备和UI范式(如多点触摸)。
参考文献:
[1] 许文宪、董子建.《Java程序设计教程与实训》.北京大学出版社.
[1]Eckel B.Thinking in Java[M].北京:机械出版社,1999.240-251.1999.240-251.
[3]王行言.JAVA语言与面向对象程序设计[M].北京:清华大学出版社,2000.112-113.