台湾SUN每年举办的“JavaTwo专业技术大会”,在今年改为“SUN科技日(Sun Tech Days)”,会中说明SUN在企业应用、行动装置、桌上系统、网络服务、SOA、Ajax、Solaris等领域的技术进展。其中JavaFX是开发者好奇的新技术,可看出SUN诉求提供开发者比Java SE学习门坎低的2D设计技术。
JavaFX分为JavaFX Script与JavaFX Mobile 由于大中华区的SUN科技日,由北京的技术团队主讲,所以台湾的讲师只剩3位。虽然SUN在上午的主题演讲强调Solaris开源的成果,不过多数学员关心的却是Java的发展,尤其JavaFX更吸引许多学员的好奇。
SUN中国工程研究院技术传教士(Technology Evangelist)李涛表示,JavaFX分为JavaFX Script与JavaFX Mobile两部分。JavaFX Script是类似JavaScript的脚本语言(Script Language)。SUN推出JavaFX Script希望可以兼顾Java跨平台及脚本语言简易开发的好处,提供开发者快速开发RIA(Rich Interactive Application)的应用。
而JavaFX Mobile目前仍处于概念推广阶段,具体的应用尚未成形,李涛认为:“JavaFX Mobile不是要取代Java ME。”Java ME是手机的开发平台,而JavaFX Mobile则是手机的运行环境,对应的竞争对手是Windows ME、Symbian及Palm等作业平台,至于更明确的细节,预计要到明年的JavaOne才会有更明确的说明。
JavaFX大幅降低设计门坎,但仍缺GUI工具
从李涛提出的范例,可以发现JavaFX Script所设计的效果,其实Java SE同样可以做到,但JavaFX将大幅降低视觉效果的设计门坎。从一段“Hello World”的程序代码,可以看出JavaFX Script的语法简洁许多。
此外,李涛针对JavaFX与Flash的比较说明:“事实上Flash的效果, Java 2D的API也同样做得到,只是难度较高,未来若采用JavaFX会简单很多。”
对Java开发者而言,使用JavaFX Script的好处,在于JavaFX Script支持所有Java的函式库(Library),可在JavaFX Script中穿插Java语法,也可以使用Swing及2D的所有组件。
JavaFX Script的部署是透过Java Web Start下载,客户端只要有约1.5MB的JavaFX执行环境(Run Time Environment)即可执行。
现阶段JavaFX Script的发展仍不算成熟,因为目前只有Reportmill公司推出图形用户界面设计工具──JFXBuilder,但仅支持Linux与Unix操作系统。而SUN的NetBeans目前尚未提供图形化设计功能。
诉求开发与设计使用相同语言
另一个引发关注的问题,是网页开发已存在包括JavaScript、Ruby、Python等多种脚本语言,而SUN再推出JavaFX Script,开发者的学习意愿可能不高。
李涛则强调:“SUN推出JavaFX Script的目的,是希望开发者与设计人员可以使用相同的语言,避免双方沟通不良的问题。”
Java SE 6开源原则:开放实作,不开放规格
除了JavaFX外,另一个吸引开发者目光的是Java SE的发展。SUN技术传教士沈卓立在主题演讲中展示Java SE的应用,可以设定酷炫的启动屏幕、资料输入的错误提示机制,及有如动画般的数据筛选效果,都是过去无法想象Java SE可以实现的功能。
为此,台湾SUN教育训练技术顾问陈俊亨特别利用一个小时的课程,预告Java SE未来可能的演进。Java SE 6自2006年11月宣布开源后,引发社群热烈回响。事实上,SUN为不使Java语言走向分岐,因此虽然开放Java SE及Java ME的实作(Implementation),但并没有开放Java的语言、规格及TCK(Technology Compatibility Kit)。也就是说社群可调校函式的撰写方法,但规格的制定、测试与发布,主导权仍由SUN与JCP组织掌握。
Java SE 6功能改进很多,SUN声称是桌面应用的一大胜利,不过结局仍是备受社群抨击,所以Java SE 7又做了许多优化,希望可以提升开发Java SE应用的意愿。
Java SE 7提出一个新的Superpackage的架构,帮助开发者突破Public、Private及Protect,更进一步地管理程序存取范围。此外,目前Java SE 6透过Rhino平台可以支持JavaScript,到了Java SE 7,ByteCode的型态将有所改变,支持Dynamically Typed Language,有助于推行其他Script语言移植到JDK。
RE至今最为人垢病的问题,仍在下载的档案大,及安装时间很长。JRE 6甚至超过10MB,于是JRE 7希望改善安装时间,因此JRE将模块化,让使用者只下载更新或需要的部分,不必整包下载。
(责任编辑:A6)