写点什么

JavaFX:桌面和移动设备的客户端 Java

  • 2007-10-11
  • 本文字数:3000 字

    阅读完需:约 10 分钟

自从五月份 JavaFX 在 JavaOne 上首次宣布以来,聚焦于改善 Java 的客户端用户体验的一波行动已经开始了。InfoQ 就 JavaFX 的内容及影响采访了 Joshua Marinacci。

Joshua Marinacci ,来自 Sun 的 Swing 工具包团队,最近汇总了 JavaFX 被认可的部分技术,极力证明 JavaFX != JavaFX Script

JavaFX 的市场定义是一套用来创建丰富用户体验的产品和技术。

那么非市场定义意味着什么呢?它意味着我们正在生产一连串聚焦于客户端和用户的新素材。这既意味着要创造一些能制造漂亮新应用的新技术,也意味着要改进现有技术使其变得更好。JavaFX 是对客户端 Java 的根本性改进,因此我们可以用它构建未来应用。我最近更倾向于用户体验(User Experience)这个术语,而不是用户接口(User Interface)。因为用户体验不仅仅是 GUI 组件和特效(eyecandy),它还包括安装 Java、运行 Java 应用、更新等体验。它涉及到速度和可靠性。它不仅仅包含创建体验还包括运行时体验。所有这些都是你的用户“体验”的一部分,甚至比 UI 部件还多。

他罗列了 JavaFX 旗下的技术:

  • JavaFX Script
  • 设计和开发工具(Designer and Developer Tools)
  • JavaFX Mobile
  • 面向消费者的 JRE(Consumer JRE —— 包括:部署工具包、新的安装器、java 内核、快速启动、媒体、Nimbus)

InfoQ 就这些方面及其他方面对 Joshua Marinacci 进行了采访。

JavaFX Script

JavaFX Script 是大幅改进构建客户端 Java 应用的一种新方法。JavaFX 的最新教程介绍了基本 概念 2D 矢量画图板,客户服务器使用 RMI JAX-WS 进行通信以及从图形丰富站点再生页面。

无论是 JavaFXPad 演示 JFXBuilder 还是 NetBeans 的 JavaFX Script Plugin ,这些工具还在不断地进化。

尽管 JavaFX script 没有为产品应用做好准备,而且现在 有点慢,它基本上还是一个进行中的工作。但是,它是构建在一套成熟的 Java 客户端技术之上的:

JavaFX Script(只是 JavaFX 的一部分)仍是测试版,还未为第一版做好准备。该语言仍在开发中,因此我还不想让每个人都将其应用转到它上面。可是,FX script 是访问成熟 JavaSE 套件丰富特性的一种新方法。你可在快速稳定的运行时上获得大量高质量开源类库,你可以用多种不同语言开发。最棒的是你可以很容易与强大的服务器端 Java 应用一起工作。

设计和开发工具

除了已经讲到的 JavaFX script 工具,JavaFX 旗下还有其它面向设计者和开发者的工具:

我们为设计者制作了一个全新工具集。它肯定将与我们的其它工具共享代码,但是它不仅仅是一些 NetBeans 的模块。而是明确定位于设计者和内容创建者的全套工具。更像是 Flash 而非 IDE。我们或许还将给 NetBeans GUI Builder(以前的 Matisse)增加一些 FX 支持,但那与纯设计工具是分离的。
成为构建这种新设计产品团队的一员,我真的非常兴奋。我们有一些大师在从事此项工作并提出了一系列新的令人敬畏的想法。我认为许多人将会对该工具感到惬意、震惊。

我们为开发者制作了 NetBeans 插件(可以在 alpha 版的 NetBeans 里看到),以及一个羽翼丰满的编译器(在 Java.net 上的作为一个开源项目)。该编译器被设计在 IDE 之外工作,尽管很明显我们要与 NetBeans 很好的集成。

JavaFX Mobile

JavaFX Mobile 构建在 Sun 所收购的 SavaJe 套件之上,它支持用于移动设备的一个完整套件,从操作系统到框架和应用:

JavaFX(不仅仅是 JavaFX Mobile)的一个目标是终结分裂的平台。
我们经常说分裂 Java 是件坏事(咄!)而且这是为什么我们过去非常非常谨慎地开放 Java 源码。阻止 Java 分裂可能是 Java 生态系统里最重要的事情。如果是这样(我当然非常同意这种观点),那么任由移动端 Java 分裂而桌面和服务器端 Java 统一没有意义。所以这就是我们以如下方式谈论 JavaFX Mobile 原因:

  1. JavaFX Mobile 是一个完整的移动套件和实现。它不仅仅是一套规范,还是一个实际(单一)实现。基本上它是完全用 Java 编写的全套 OS + 应用 + API 。只有内核和一些设备驱动是用 C 编写的。
  2. 我们可以在信号场内更新系统。移动市场将不再被存在 bug 的旧实现或当前特性所分割。每个设备可以在该平台的同一版本上工作。
  3. JavaFX Mobile 是为高端电话设计的,这意味着它具备了 JavaSE 的能力。

[第三点] 最重要的一点。我们的长期目标是使 JavaSE 和 JavaME 趋于一致。你不再需要了解多个 API。只有一个 Java。

尽管 Josh 不能深入说明哪家移动通讯公司可以提供给 JavaFX Mobile 设备,或评论 Google phone 传闻(“我与其他人一样热切地去看有这个传闻的站点”),他提供了一些影响 iPhone 的更多信息:

可是,我愿意说一件事情。人们经常困惑 JavaFX Mobile 将怎样与 Apple 的 iPhone 竞争。iPnone 实际上是 JavaFX Mobile 的极好载体。假设你是一个手机制造商或一个不排斥 Apple 的移动通讯公司。如果你想制造一款类似 iPhone 设备,Apple 自然不会帮助你销售你的移动设备的操作系统和应用。但是 Sun 愿意…… 移动世界接下来几年将会变得更加精彩。

面向消费者的 JRE

The Consumer JRE 本身是另一个技术簇,最近看到了其第一个 预览版,包括 Nimbus 外观(look and feel)。

面向消费者的 JRE 应该帮助那些只想使用由 Java 编写的应用程序的消费者,使其应用外观紧跟时代、比现在耗费处理时间更少。随着快速启动机制和硬件加速的应用,Java 将比以前响应更快。

人们没有意识到的一个重要事情是,Java SE 6 更新版 N(以前的 Hamburg 项目,以前的 Consumer JRE)是 JavaFX 的一部分。这是 JavaSE 6 的一个新版本,极大提高了安装和部署体验。安装和部署听起来就让人烦,但这是用户开始或安装 Java 应用时所看到的第一步,所以它关系很多问题。JavaSE 即将发生的变化是 JavaFX 套件之上许多更酷可视物件的基础。即使你不用 JavaFX 的任何东西,它们也是很有用的。可以看看在春天发布的 Java SE 6 第一个更新版本。

最终,Nimbus 外观和媒体集成将使 Java 历程成为一种丰富且愉快的体验:

我的理解是处理媒体(尤其是视频)最大的挑战是法律问题而非技术问题,所以问题不在于 Java 不够快或不够强大。新媒体支持的第一版支持回放和抓帧,这已经足够去做人们想在 Web 上做的大多数酷事。我们不是在创建一个完整的像 Quicktime 那样的 API,但是你将可以非常容易地做一些基本处理。

因此……

尽管这些雄心勃勃的计划都在进行中,Sun 和 Java 是否具备在未来富媒体、华丽桌面应用方面产生重大影响的能力?或许这就是 Java 进军客户端的梦想到来的时候,抑或不是?Josh 说到了这些成就的可信性

Sun 已经抓住了企业客户端市场并且很成功。你或许会怀疑有多少大公司使用基于 Swing 的计费和销售系统。Sun 以前(至少 10 年内)从未追随过消费者。现在我们这样做了,所以有些不同了。

我请人们不要听信我们的言辞,只要看我们实际正在做什么。试试 JDK 7 的开发构建;看看在新 Java SE 6 更新 beta 版中将要提供的新部署特性;操练一下 JavaFX Script;用用 NetBeans GUI Builder。我们正在使客户端发生真正的改变。我知道一些人感觉 Sun 是一个服务器公司,在客户端不具可信性,看看我们实际正在做和正在销售的东西吧。我同意这是一个大的变化,但是世界在变化。现在的 Web 已经不是 5 年前的 Web 了。移动世界正在被惊醒。什么都在变,包括 Sun。

要想了解更多信息,请加入 OpenJFX 项目,去看 Josh 关于 JavaFX 的言论或者留下来转到 InfoQ 的 Java 社区.

查看英文原文: JavaFX: Client-Side Java for Desktop and Mobile

2007-10-11 05:042319
用户头像

发布了 150 篇内容, 共 45.7 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

百问百答第49期:极客有约——国内可观测领域SaaS产品的发展前景

博睿数据

可观测性 智能运维 博睿数据 极客有约 中信证券

一朵“云“如何带来产业新变革

天翼云开发者社区

云网融合

线程池原理与实践|从入门到放弃,深度解析

领创集团Advance Intelligence Group

线程池 内存溢出 线程池工作原理

【CSS】基础选择器,包括标签选择器、类选择器、id选择器和通配符选择器...

翼同学

CSS html 前端 HTML5, CSS3 8月月更

一款好用的FAQ搭建工具

Geek_da0866

KunlunBase 1.0 发布了!

KunlunBase昆仑数据库

国产数据库

开源一夏 | 计算机网络:物理层

是Dream呀

开源

什么是现场服务管理系统(FSM)?有什么好处?

优秀

企业管理系统 现场管理

麦聪DaaS平台 3.7.0 Release 正式发布:全面支持国际化

雨果

DaaS数据即服务

玩转云端 | 天翼云对象存储ZOS高可用的关键技术揭秘

天翼云开发者社区

云平台 云存储

天翼云4.0分布式云赋能千行百业数字化转型

天翼云开发者社区

云存储 云上架构

发挥云网融合优势,天翼云为政企铺设数字化转型跑道

天翼云开发者社区

数字化转型 数字化基础 云网融合

DevOps之代码检查

凌云Cloud

DevOps 研发管理 代码检查器

这份562页的算法知识点集结刷题手册,将是你拿大厂offer的突破口

了不起的程序猿

程序员 算法 编程语言 java程序员 大厂面试

Mqtt开发笔记:windows下C++ ActiveMQ客户端介绍、编译和使用

JAVA活菩萨

Java 程序员 后端

Linux Lab 编译 riscv-gnu-toolchain

贾献华

8月月更

竞赛:糖尿病遗传风险检测挑战赛(科大讯飞)

Lingxw

数据挖掘 Kaggle 8月月更

千万级QPS下服务如何才能平滑启动

HelloGeek

微服务架构 Service Mesh 高并发优化

面试官:可以谈谈乐观锁和悲观锁吗

JAVA活菩萨

面试官

从技术全景到场景实战,透析「窄带高清」的演进突破

阿里云视频云

云计算 直播 视频

MyBatis操作数据库

JAVA活菩萨

Java 程序员 后端

连续三次 | 灵雀云入选Gartner中国ICT技术成熟度曲线报告

York

云计算 云原生 数字化转型 ICT Gartner

实现客户服务自助,打造产品知识库

Baklib

天翼云4.0来了!千城万池,无所不至!

天翼云开发者社区

云计算 云平台

深入理解IO流(第一篇)

JAVA活菩萨

Java 程序员

开源一夏 | Web开发(七):登录实现及功能测试

是Dream呀

读书笔记之《你想过怎样的一生?》

宇宙之一粟

读书笔记 8月月更

企业云成本管控,你真的做对了吗?

Kyligence

云成本管控 云成本分析

魔豹联盟:佛萨奇2.0dapp系统开发模式详情

开发微hkkf5566

开源一夏 |【云原生】DevOps(五):集成Harbor

是Dream呀

Spring Boot整合Mybatis

JAVA活菩萨

Java 程序员 后端

JavaFX:桌面和移动设备的客户端Java_Java_Geoffrey Wiseman_InfoQ精选文章