Sun公司的JavaFX是一种脚本,以简单的方式利用现有的Java语言、Java 2D和Java Web Start技术实现Web富客户端界面。
很久以前,当Internet还很年轻的时候,Java语言曾经很受青睐,以至于《财富》杂志将Scott McNealy(Sun公司董事会主席及Sun 联邦公司主席,他是Sun公司联合创始人)评为封面人物,以超级英雄装扮,冠以“Java Man”的称号。Java跨平台的能力使得计算机世界大为震惊,成为计算机世界默认的编程语言。
尽管Java在教育、科学计算、服务器领域取得巨大的成功,但是在桌面应用程序方面却没有那么成功。另外,对于能够嵌入在任何Web站点的Java applet来说,是不能和动画流畅、图形保真度很高的Flash匹敌的。Microsoft曾经力推的动态HTML,后来复兴的Ajax,都使得Java applet 在Web领域的优势逐渐消失。
现在11年过去了,Sun想重新赢回自己的用户。不过目前看来,这个任务变得艰难许多,因为Adobe公司不仅有AIR,还有Flex和Flash。单独Flash就发行到第10个版本了,并且比以前的版本有了更多的功能。这仅仅是一个Adobe,另外,Microsoft推出的Silverlight,Apple仍旧推动QuickTime的发展,另外AJAX技术呼声也不小。它们之间的竞争欲演欲烈,谁都想成为占绝对优势的技术,满足对动画口味要求越来越高的用户。
Java重装上阵
Sun现在对这场战斗准备得更好些。Sun现在有丰富的程序库供动画制作使用,包括很受看中的Java 2D, Java 2D是与Adobe公司一起开发的,模仿PostScript的计算结构。有人说在Web动画方面,Flash之所以胜过Java applet是因为Flash提供了平滑的反混叠算法。如果Java 2D API不够的话,会有大量的开源程序库开发出来,供开发者使用。
现在看来,Sun跟以前相比,对这场战斗确实准备得好一些,但留给Sun的问题是如何解决新瓶装旧酒。虽然工具已经给Web美工设计人员准备好了,但是Web美工设计人员对如何使用工具却没有准备好。一些Web美工设计人员能写Flash的脚本,但是使用纯粹的Java还欠功力。因此Sun需要创建一个新的语言,并且希望Web开发者能够喜欢并且使用新的编译器将之变成字节码,运行在Java虚拟机上。
Sun确实也推出了新的语言JavaFX,我已经花了几天来试验新的语言,我得出的结论是JavaFX的成功或者失败主要取决于用户的体验。新的语法隐藏了一些Java中讨厌的语法限制,最大范围了满足需求,让用户使用起来更加自由,忽略了一些标点符号。关于颜色和布局的设计细节混合在代码中,写出来的代码有些像CSS、HTML和JavaScript的混合体。新的语言有许多内置的功能来处理最为常见的任务,例如加载远程文件。
使用的这个语言的便利是要付出代价的:需要学习一个新的语言,记住另一套方式来构成一个Web应用程序。老的关键字“void”重新规定为“Void”,V要大写,但是这些关键字的定义会自动从函数中得来,不用显式的敲出来,这还是很方便的。除此之外,还有一些好的语法。
经过一些实验,我发现对有些方面受不了。开始问自己为什么Sun不使用Groovy,使用一些简洁语言来进行Java富Web客户端程序设计?或者使用JavaScript?在浏览器中的JavaScript层和JavaFX applet之间有许多灵巧的钩子。或者使用原始的Java?我曾经想对于Java程序员来说,一些本可以拿Java本身表达的XML或者Properties文件不去表达,而非要掌握一个新的语言是否是一件明智的事情。
[1] [2] 下一页