JavaFX 是SUN公司在2007年JavaOne大会上首次对外公布的以Java为基础构建的富客户端平台,更让开发者印象比较深刻的则是其背后的JavaFX开发团队,仅仅在两年的时间就从1.0版本完善到1.3.x版本,不但增加了很多新功能,在性能方面也有了很大的提升。
当Oracle收购Sun后,就宣布停止支持JavaFX脚本语言,进一步把它的API整合到Java里面去,后面的版本当中也默认捆绑了JavaFX。在JavaOne 2011大会上,Oracle也向公众表示的开源计划也实现了。
由此可见,在移动互联网的时代,Oracle已经认识到了RIA技术的重要性,想把JavaFX打造成Flash和Sliverlight这样的顶级产品。但是对于RIA,Java还是新手,想撼动Flash占据部分的份额显然是很难的。不过凭借着Java众多开发者的力量,作为通用的开发语言,对抗FLASH的ActionScript还有有很大的优势。小编在知乎上曾看见过某位大神对Java FX的评价还是比较客观的:
(1)Java技术是开源的,从开发工具(Eclipse,netBeans),到无所不包的开源类库。Flash、Silverlight就不一样了。
(2)跨平台。如果你明白微软的策略,就不会押宝在silverlight上了。微软最终不会支持跨平台的,只会跨windows平台,提出跨平台只是为了搅局。还好大家都不再吃那一套了。
(3)Java作为一门通用的开发语言,是Flash的ActionScript无法比拟的,类库全(数据库、网络、IO等等),强大免费的开发工具,不仅仅在浏览器里跑(虽然Air也可以,但没有大型的程序用Air吧,Java典型的应用就是Eclipse netBeans)。JavaFx正在弥补图形处理方面的不足(这是Flash的强项,JavaFx已经开始支持硬件加速了),但是Java的强项Flash很难复制。
在今年3月份JavaFX伴随着甲骨文Java 8的推出以其组件形式完成了又一次更新。不过很多人对于这项技术的未来前景以及影响力提出了质疑。
Oracle公布的开源JavaFX 8拥有UI控制、嵌入式图形堆栈、现代主题、3D图形处理再加上HTML 5支持等多项功能特性。其工具集在设计思路上专注于性能与图形,且能够在嵌入式系统之上顺畅运作。
不过Forrester研究公司分析师John Rymer对于JavaFX的生命力并不看好。“我们并未看到市场对于JavaFX所抱有的深厚兴趣,”他指出。“Java 8——很好,但JavaFX完全是另外一回事。在我看来,JavaFX恐怕太孱弱也太迟钝。JavaFX当初就没能完成Sun公司为其制定的预期发展目标,而这也使得Java成为Web客户端以及移动开发领域的顶级环境。(出自:infoworld)
事实上,HTML 5、谷歌Android(本身就基于Java)以及苹果iOS等平台已经成为移动开发领域最为显赫的名号。类似于Adobe Flash与微软Silverlight,JavaFX已经被逐出核心舞台、被迫充当新时代下的龙套角色。不过它也拥有自己的支持者群体。在咨询与软件开发企业Welland公司中,技术人员一直利用JavaFX对负责数据库间数据迁移工作的桌面应用程序进行更新。JavaFX能为应用程序带来更具现代特色的外观,Welland公司高级软件工程师Cole Markham指出。“就个人经历来说,我所交流过的技术工作者中有很多都对JavaFX抱有兴趣,但这仅限于Java社区之内。”Markham还将JavaFX视为Swing GUI技术的继任者。
不过451研究公司分析师Michael Cote认为,JavaFX是一种已经衰落的丰富互联网应用(简称RIA)技术。“我觉得RIA的时代早就已经过去,现在已经是所谓智能手机与平板设备的时代了。HTML 5、Android以及最不能忽略的iOS才是真正的赢家。”他把JavaFX视为与Flash及Silverlight相近的即将过气平台,并指出indeed.com网站上的一幅图片显示、JavaFX程序员自2013年一月起就普遍处于无事可做的状态:
图片来自 indeed.com
甲骨文已经验证了JavaFX在Android与iOS平台上的可行性,尽管Java运行时本身在iOS设备上不受支持。不过Rymer认为甲骨文也已经感受到了JavaFX所受到的冷遇。虽然Java被广泛应用于移动及多通道应用程序的服务器端,但其在客户端上的普及程度还相当低下。甲骨文目前正努力在这方面推动JavaFX与Java ME(即Micro版本)的表现,Rymer指出。“虽然取得广泛成功的可能性确实不主,但软件行业的事确实很难说得准。”
最后小编认为,虽然说现在大部分主流厂商都在极力推广HTML5,但是新技术总是要花一段时间来完善的。就目前趋势来看,JavaFX或许无法跟FLASH和HTML5相比,但是JavaFX依然还是很年轻,未来的路还是很长,在不断的优化和改进的过程中,也许会在Java开发者心中占有一定的位置。