为了桌面Java的未来发展,许多的重大改进正在进行中,
对此做了很大的努力
就语言方面来说,出现了JavaFX script 项目。
JavaFX是很灵巧的,它提供了一个高级的脚本接口,运行在Java
2D的API上。从用户的角度来看,他们不需要编写
Java代码,不需要深入理解复杂的线程,Java 2D,
Swing类的层次结构,定时框架结构(timing framework)等等
。相反,他们只是编写脚本语言和描绘出所需要的GUI,包括活波的音响效果,图形效果,
比如说梯度或者音乐,和数据绑定等等,这些都建立在一个基础API上。
这里有许多的工具帮助你学习syntax语言,相关资源这个从这
个网站获得;JavaFX研发小组的目标就是提供syntax语言,和
一些关于JavaFX的用户体验,这些用户包括美术设计员和那些对应用程序可视界面美观感
兴趣的民众。当前,JavaFX某种程度上作为第四步产生的语言在运行,因为首先是解释器
将FX脚本创建成为Java代码,然后再调用适当的
Java 2D API。该小组长期的目标是将FX脚本直接编译成字节
码。
JavaFX添加到桌面Java是一件非
常好的事情,但是,这得取决于是否有这样的一种JRE的存在,它能运行
JavaFX生成的代码。有些人认为FX已经进军到
RIA(rich Internet application)领域,和Adobe公司的
Flex一较高下。但是,目前还是有一些难题需要解决,举个例子,如何才能让桌面
Java的安装体验和运行时间性能比得上其它的RIA框架。还好
,这种问题正在被其他的项目解决,这个项目名称就是Java kernel。
Java kernel主动承认这么一个事情,即大多数的
Java应用程序都是只有JRE的部分大小,如
Limewire(一个文件共享的桌面应用程序),它只有
JRE的三分之一大小。Kernel将会对
JRE重新打包,使得只下载应用程序所需要的部分JRE。每个
程序所需要的基本部分将会被下载,作为JRE启动所需要的最小部分,其他的部分根据需要
下载,或者根据ClassNotFound异常信息,下载缺失的类。这将是一个巨大的好消息帮助桌
面Java应用程序瘦身,同时还能使得桌面Java应用程序执行
的更为有效。除了解决如何下载的问题外,kernel还非常关注
Java程序的启动性能。
在先前的kernel几个版本,热启动时间(warm
start times)减少了很多,但是,在应用程序调用main(String[])前,冷启
动JRE仍然需要延误许多秒的时间。Java kernel正在尝试有
效的处理冷启动,将冷启动转变为热启动,通过一些相关的技术,如预加载(pre-loading)
JRE,从硬盘读入到内存,还有一个操作系统服务,这个服务的功能就是监视可分配的内存来加载
JRE,使得用户获得最佳的性能。出了这些,kernel还提供了
一个新的浏览器插件,提供给Web 开发者更多的关于桌面运行信息,可获得的
JRE水平等等。
对于桌面Java来说,Java kernel 和
Java FX两大好消息。说Kernel是一个非常好的技术,是因为
它承认了Swing已经到了一个非常成熟的阶段,并且帮助开发这如何将他们的
Java应用程序更为快速,更为有效的搬到用户桌面上。说FX
是两外一个非常好的消息,是因为它为Java开发者打开了新篇章,特别是那些愿意使用脚
本语言和做一些高级的,活波的,图形效果的开发者,他们只需要写简单几行代码就可以完成。我相信这两项技术将会
使得更多的应用程序用Java语言编写,运行在用户的机器上,同时,对于用户和开发者来
说,应用程序变得更快,更简单。