写点什么

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

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

关注

评论

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

CES 2024的亮点仅仅聚焦AI深度赋能和产业创新吗?| DALL-E 3、Stable Diffusion等20+ 图像生成模型综述

GPU算力

跨境电商如何利用item_get-根据ID取商品详情(shopee.item_get)提升用户体验?

技术冰糖葫芦

API 编排

合合信息启信数据发布园区金融解决方案,助力银行精准服务“十四五”特色产业

合合技术团队

大数据 金融 合合信息 启信慧眼

三个方面浅析数据对大语言模型的影响

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 大语言模型

AI大模型低成本快速定制秘诀:RAG和向量数据库

百度开发者中心

人工智能 数据库 大模型

测试管理 | 入班第二个月后拿到4个知名企业Offer,他是怎么做到的?

测吧(北京)科技有限公司

测试

精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)

洛神灬殇

Docker 容器 云原生 容器技术 2024年第二十一篇文章

在游戏里开公司!基于ERNIE SDK的多智能体游戏应用

飞桨PaddlePaddle

百度 paddle 游戏开发 飞桨 飞桨国赛

国产 Web 组态软件在玻璃生产线中的应用

图扑物联

租赁舞台LED屏的注意事项及问题排除

Dylan

活动 LED显示屏 led显示屏厂家 效果广告

《2024年金融业生成式AI应用报告》:已有6家上市银行发布大模型技术应用进展

科技热闻

人工智能大模型多场景应用原理解析

百度开发者中心

人工智能 图像识别 大模型

活动回顾|分享成果&展望未来,一起走进隐语年度嘉年华精彩现场叭!

隐语SecretFlow

隐私计算 数据要素流通 隐语开源社区

文心一言 VS 讯飞星火 VS chatgpt (186)-- 算法导论14.1 3题

福大大架构师每日一题

福大大架构师每日一题

热更新适配ibatis原理浅析

京东科技开发者

uniapp vuecli项目融合[小记]:将多个项目融合,打包成一个小程序/App,拆分多个H5应用

达摩

小程序 uni-app vue cli

源码交付:定制软件开发的重要保障

飞算JavaAI开发助手

申万宏源基于 StarRocks 构建实时数仓

StarRocks

数据仓库 数据分析 实时数仓 StarRocks

万字图解|深入揭秘 (数据链路层、物理层) 工作原理

云舒编程

IP 物理层 路由 图解网络 数据链路层

百度智能云千帆 AppBuilder 构建 AI 原生应用开发新范式

百度Geek说

人工智能 百度智能云

vivo 海量基础数据计算架构应用实践

vivo互联网技术

大数据

AI大模型在电商商家端自定义报表分析中的应用与实践

百度开发者中心

人工智能 电商 大模型

荣耀开发者大会 2023 · 一张图读懂极致体验分论坛

荣耀开发者服务平台

火山引擎VeDI:新增微信小程序广告A/B实验功能,助力企业降低获客成本

字节跳动数据平台

数据库 大数据 ab测试 企业号 1 月 PK 榜 对比实验

用游戏盾会掉线吗,游戏出现掉线或者卡顿的可能有哪些原因

德迅云安全杨德俊

vue-office文档预览跨域问题

麦兜

隐私计算 互联互通又一成果,相关代码已在隐语社区发布!欢迎加入隐语标准生态

隐语SecretFlow

技术标准 数据安全 隐私计算 数据要素 互联互通

软件测试/测试开发|学习两个个月后拿到4个知名企业Offer,他是怎么做到的?

霍格沃兹测试开发学社

4个知名企业Offer拿到手软,他是怎么做到的?附面试真题

测试人

软件测试

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