前年的时候我开始学习JavaFX,我想这是学习其他领域的计算机编程的很好的方法(因为我主要是做PHP的网址开发)。Sun微系统公司将 JavaFX看做是下一个Big Thing,因而Sun从其他项目和部门中抽取了最优秀的人才以便最大化地专注于JavaFX的开发。
到现在已经接近两年了,Sun不断提升JavaFX,并将它定位为可用的富客户端技术,以及与Adobe的Flex以及Microsoft的Silverlight竞争的产品。实质上,JavaFX是一个基于JVM的域语言用来构建富用户界面,以及作为语言的一套API。
尽管Swing的社区很活跃,尽管Swing有很多的用户群,在过去的一年半中Sun仍然重新规划将重点放在了JavaFX上,代价是Swing开发的缓慢、停滞。Sun这种战略调整最显而易见的影响是许多有经验的Swing开发者离开了公司,比如Chet Haase, Hans Muller以及 Scott Violet。最重要的Swing相关的JSRs也已经很久没有更新,JCP网站显示:最新的JSR 295和296升级是在2006年6月
考虑到Sun在JavaFX上投入的资金和精力,我很惊讶它在打开市场方面为何如此收效甚微。我认为JavaFX应当在两个方面做出进步:1)在线游戏;2)手机。当然,在线游戏是个长期的过程,因为Flash在这方面根基很深。在线游戏的开发者已经习惯了Flash,并且觉得它很好用,因而在线游戏领域很难攻占。
再来看手机领域,我的确认为JavaFX应该做出更大的努力。Jonathan Schwartz在JavaOne上曾强调过这点。Jonathan Schwartz的话音落下已近一年,然而当谈论到手机设备时仍然很难看到JavaFX的影子。
在手机领域重量级的生产商和技术包括Nokia和它的Symbian操作系统;BlackBerry制造商Research In Motion,;暴发户Apple以及一直在努力的微软和它的Windows Mobile系统。他们每个都有自己的优势:Nokia拥有无可匹敌的市场占有率和覆盖率,控制着40%的智能手机市场;RIM的优势是 email;Apple的iPhone拥有令人眼花缭乱的多媒体;而微软则凭借着Windows的巨大影响力在智能手机领域苦心经营。
还有,Google资助了Android,一个智能手机操作系统,HTC随之研发了一款由德国T-Mobile代工生产的触摸屏手机叫做G1。其他手机制造商,如比较著名的摩托罗拉已经选择Android作为软件合作商。无疑,Android是手机领域又一个很有影响力的竞争对手。
与此同时,Apple继续升级它的平台:Apple公开的iPhone的新软件将支持一些期待已久的特性,如复制-粘贴文本和图片信息,由此可见 Apple公司在手机市场领域的强劲态势。Apple还为即将发布的应用给它网络上的许多软件开发者提供了新的选择,比如支持订阅模型和自动警报。连 CCS Insight的分析师John Jackson都说:Apple在这场竞争中已经领先了几步。两年后他将拥有最酷的手机和商业模式,每个人都会使用、谈论并模仿。
去年的时候,Sun的一些人开始宣传这样一个理念即JavaFX是Android的天然选择。也许这最终会实现,然而就现在而言,没有几个开发者选择JavaFX来做Android的开发。搜索Android JavaFX,所有你找到的搜索结果都是来自Sun的宣传和一些开发者的牢骚,你找不到任何一个网址满怀热情地实现这个理念。搜索JavaFX,所有的消息都是与开发者有关的,没有提及任何用户级产品。由此可见,Sun在这场手机的战争中已经落后了。大部分的文章都聚焦在如果一切搞定JavaFX将多么地神奇,然而一切搞定则意味着再过几年、再过几个版本。
而且一些不经意潜藏在1.1 release注释中的注释显示javafx.ext.Swing包在公用类(Common profile)中不可用,所以不能在移动应用中运行,这意味着没有标准的桌面UI组件比如按钮(buttons)、树(trees)和 listboxes.。有一个组件即javafx.scene.control.TextBox。然而桌面组件套件的丰富却不在移动构造中。
我们都知道如果要运行在一个移动设备上,就需要构建到公用类(Common profile)中。但如果易用的UI组件不是API的一部分,那不是彻底毁掉了以UI为核心作用的JavaFX的整个作用?在JavaOne 2009之前,更多的UI控制将针对公用类,但是移动开发者会发现这些只是半成品。在这种情况下,之所以还说Sun可以弥补这一点是因为不同于 JavaFX在桌面的竞争形式,JavaFX mobile不是十分落后于Adobe(它的Flash Light也没有广泛应用)和Microsoft(甚至还没有移动版本的Silverlight)。
对Sun来说还有一点优势,那就是他们的开源策略,他们已经贡献了价值不菲的许多软件(Open Office, Java等)。因而Sun所在的开源软件世界远比Microsoft和Adobe所在的专利软件世界简单得多。尽管如此,还是没有看出Sun有什么苗头在用户级技术方面取得成功。
但是对JavaFX我仍然怀有希望,因为我对Google有信心,Android将允许Java运行在手机上。