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 ...
随机推荐
- 【php】mysql全局ID生成方案
生产系统随着业务增长总会经历一个业务量由小变大的过程,可扩展性是考量数据库系统高可用性的一个重要指标;在单表/数据库数据量过大,更新量不断飙涨时,MySQL DBA往往会对业务系统提出sharding ...
- TCP/IP包格式详解
文章参考地址:http://blog.chinaunix.net/uid-20698826-id-4700710.html http://blog.csdn.net/mrwangwang/articl ...
- CityEngine Web Scene如何在IIS下部署 [转]
CityEngine2012新增了发布Web场景的功能,可以通过本地的Web Scene Viewer打开,也可以发布到ArcGIS Online云端进行共享.如下图: 注:3ws场景包制作方法: ...
- JSON转换类(一)--过滤特殊字符,格式化字符型、日期型、布尔型
/// <summary> /// 过滤特殊字符 /// </summary> private static string String2Json(String s) { St ...
- Solr与HBase架构设计
摘要:本篇是本人在做一个大数据项目时,对于系统架构的一点总结,如何在保证存储量的情况下,又能保证数据的检索速度. 前提: Solr.SolrCloud提供了一整套的数据检索方案,HBase提 ...
- PHP添加Redis模块及连接
上几篇文章介绍了Redis的安装及使用,下面将介绍php如何添加Redis扩展! php手册并没有提供Redis的类和方法,也没有提供相关的扩展模块,但我们可以在Redis的官网下载PHP的扩展,里面 ...
- PHP验证码
设计一个验证码类,在需要的时候可以随时调用 验证码类,保存为ValidateCode.class.php <?php //验证码类 session_start(); class Validate ...
- webstorm 注册码
User Name: EMBRACE License Key: ===== LICENSE BEGIN ===== 24718-12042010 00001h6wzKLpfo3gmjJ8xoTPw5m ...
- APACHE重写去除入口文件index.php
下面我说下 apache 下 ,如何 去掉URL 里面的 index.php 例如: 你原来的路径是: localhost/index.php/index 改变后的路径是: localhost/ind ...
- nagios 自定义插件demo
#!/bin/bash loadavg=$( uptime | awk -F: '{print $4}' | xargs ) load1int=$( ) load5int=$( ) load15int ...