java系列: 对不起,JavaFX——Java 8目前还不能救你(zz)
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开发者心中占有一定的位置。
java系列: 对不起,JavaFX——Java 8目前还不能救你(zz)的更多相关文章
- 【转载】Java系列笔记(1) - Java 类加载与初始化
Java系列笔记(1) - Java 类加载与初始化 原文地址:http://www.cnblogs.com/zhguang/p/3154584.html 目录 类加载器 动态加载 链接 初始化 示例 ...
- 【转载】Java系列笔记(3) - Java 内存区域和GC机制
Java系列笔记(3) - Java 内存区域和GC机制 转载:原文地址http://www.cnblogs.com/zhguang/p/3257367.html 目录 Java垃圾回收概况 Java ...
- Java系列笔记(2) - Java RTTI和反射机制
目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...
- Java系列笔记(3) - Java 内存区域和GC机制
目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...
- Java系列笔记(1) - Java 类加载与初始化
目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个 ...
- Java系列,《Java核心技术 卷1》,chapter 13,集合
13.1.2 Java类库中的集合接口和迭代器接口 删除元素,对于next和remove的调用是互相依赖的,如果调用remove之前没有调用next,则会跑出IllegalStateExcep ...
- java系列:《java核心技术 卷1》学习笔记,chapter 11 调试技巧
11. 6 调试技巧 1)一个不太为人所知却非常有效的技巧是在每个类中放一个main方法,这样就可以对每个类进行单元测试.这个方法可以保留,因为在java虚拟机只调用启动类的main方法. 2) ...
- Java系列:关于Java中的桥接方法
这两天在看<Java核心技术 卷1>的泛型相关章节,其中说到了在泛型子类中override父类的泛型方法时,编译器会自动生成一个桥接方法,这块有点看不明白. 书上的例子代码如下: publ ...
- Java系列:《Java核心技术 卷一》学习笔记,chapter11 记录日志
11.5 日志记录 可以通过Loger.getGlobal().info(xxxx);的方式来记录log. 11.5.2 高级日志 1)通过一个包名来 创建一个新的日志记录器. private sta ...
随机推荐
- iOS之UI--自定义IOS的HYCheckBox源码的使用
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- android 之 animations 动画
android 提供的了两种机制你可以用来创建简单的动画:tweedned animation(渐变动画) 和 frame-by-frame animation(逐帧动画)(有道翻译的,汗!!!) . ...
- CTF中那些脑洞大开的编码和加密
0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问题:表哥,你知道这是什么加密吗?其实CTF中脑洞密码题(非现代加密方式)一般都是各种古典密码的变形,一般出题者会对密文进 ...
- bsearch的溢出问题
在java中为了避免 low+high溢出,可以用无符号右移:正数高位补0,负数高位补1 int mid = (low + high) >>> 1; 如果是在c++中,那么需要先转换 ...
- EF+MVC+cod First项目性能优化总结
1.EF:this.Configuration.UseDatabaseNullSemantics = true; //关闭数据库null比较行为 2.实体必填字段要加:[Required]属性,可定长 ...
- 问题解决——Group Box控件遮挡其他控件
转载请保持文章的完整性并显要地注明出处 本文链接:http://blog.csdn.net/wlsgzl/article/details/38042301 ====================== ...
- js获取页面传过来的参数
//接收页面传过来的值 //RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i" ...
- 使用Number.parseFloat引发的悲剧
起因: 前几天,项目中有人用了Number.parseFloat(xxx)方法.在Chrome和FF中是可以使用的.然而在IE中却报错,提示不存在这个function. Solution: 经查Jav ...
- Linux环境安装MQ
MQ下载地址:http://www-03.ibm.com/software/products/us/en/wmq/ 安装的MQ软件包为WMQv600Trial-x86_linux_2.tar.gz. ...
- c#发送http请求
直接代码,自己备用 /** * @method:生成验证码 */ [JSONMethod] [Description ( "生成验证码" )] [DomTemplate ( )] ...