生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

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:042213
用户头像

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

关注

评论

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

阿里最新秋招面经,腾讯/美团/字节1万道Java中高级面试题

程序知音

Java 大厂面试 后端技术 Java面试八股文 阿里面试

阿里P8大牛总结的Java锁机制入门笔记,堪称教科书式天花板

收到请回复

多线程 语言 & 开发

大数据ELK(四):Lucene的美文搜索案例

Lansonli

9月月更 EKL

架构实战营模块1作业

陌生流云

架构实战营

吃透阿里大佬分享的这份Java面试神技,3个月斩获8家offer

Geek_0c76c3

Java 数据库 开源 架构 开发

OceanBase存储层代码解读(四):宏块的垃圾回收和坏块检查

OceanBase 数据库

互联网架构师联合总结的Java面试攻略,GitHub标星30K!

程序知音

java面试 大厂面试 java架构师 后端技术 Java面试八股文

Python语法之字典

攻城狮Wayne

字典 9月月更 Python语法

第九期-模块一

wuli洋

Javaweb核心响应对象

楠羽

笔记 Java核心笔记 9月月更

Linux安装minikube指南

程序员欣宸

Kubernetes minikube 9月月更

详解CAN总线:标准数据帧和扩展数据帧

不脱发的程序猿

汽车电子 通信协议 CAN总线 CAN协议 标准数据帧和扩展数据帧

Canvas+Javascript实现点击小球的爆炸效果

Sam9029

JavaScript canvas 9月月更 小球爆炸

面试突击86:SpringBoot 事务不回滚?怎么解决?

王磊

Java 面试

全网首次公开:Java面试参考指南V3.0版(完美契合当下所有互联网公司面试需求)

Java全栈架构师

数据库 程序人生 后端 高并发 Java 面试

【编程实践】提高工作效率,避免重复且枯燥的操作,利用Python自动发送邮件

迷彩

SMTP 邮件协议 9月月更 Python邮件发送

【算法实践】手把手带你简单实现希尔排序

迷彩

算法 排序算法 希尔排序 算法实践 9月月更

直冲云霄,阿里大牛耗时49天整理12W字面试手册,押题准确率直冲95%

Geek_0c76c3

Java 数据库 开源 程序员 架构

阿里五位MySQL封神大佬耗17个月总结出53章性能优化法则

Geek_0c76c3

Java 数据库 开源 程序员 开发

2022年企业Java面试前复习的正确姿势(已助力512人入职大厂)

收到请回复

Java 程序员 微服务 语言 & 开发

邓荣伟:稳定支撑每秒百万笔支付请求,支付宝数据库架构的过去、现在与未来

OceanBase 数据库

【云原生 | 从零开始学Kubernetes】八、命名空间资源配额以及标签

泡泡

Docker 云计算 云原生 k8s 9月月更

遭不住了!Alibaba开源内网“M9”级别高并发编程全彩版进阶手册

程序知音

Java 架构 并发编程 多线程与高并发 后端技术

全网首次公开!阿里巴巴1685页Java面试突击核心讲(基础到高级足足涵盖19个Java核心技术)

Java永远的神

数据库 spring 程序员 程序人生 java面试

2022-09-25:给定一个二维数组matrix,数组中的每个元素代表一棵树的高度。 你可以选定连续的若干行组成防风带,防风带每一列的防风高度为这一列的最大值 防风带整体的防风高度为,所有列防风高度

福大大架构师每日一题

算法 rust 福大大

Github爆火!阿里最新发布的《高并发核心编程笔记》PDF文档

Geek_0c76c3

Java 数据库 开源 架构 开发

信息论与编码(一)| 信源分类与数学模型

timerring

9月日更 信息熵

微信业务架构图与学生管理系统架构图

冷夫冲

架构实战营 #架构实战营 架构师实战营 「架构实战营」

【云原生 | 从零开始学Kubernetes】九、k8s的node节点选择器与node节点亲和性

泡泡

Docker 云计算 云原生 k8s 9月月更

数据中台架构概述

穿过生命散发芬芳

数据中台 9月月更

阿里内网流传的9w字图解网络(全彩版)GitHub现已下载量过百万

程序知音

Java 程序员 计算机网络 后端技术 计算机底层

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