写点什么

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

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

关注

评论

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

超越预算,打开企业预算管理新思维

智达方通

成本管理 预算管理 预算管理信息化 成本预算管理

菜鸟启用香港最大航空货运枢纽,全面覆盖RFID提速全球快递

斯科信息

菜鸟 斯科信息 RFID技术

如何防护CC攻击

德迅云安全杨德俊

VMware订阅费暴涨300%?超融合架构如何破解企业虚拟化困局

智驱前线

vmware 超融合架构

微店商品列表API开发指南

tbapi

微店API 微店商品列表接口 微店数据采集

不只是告警:用阿里云可观测 MCP 实现 AK 高效安全审计

阿里巴巴云原生

阿里云 云原生 可观测 MCP

“用友BIP 5”重磅发布,让AI在企业应用落地

人称T客

万字长文|AI智能体与模型进化:如何在企业落地中平衡创新与风险

JustYan

LLM AI Agent Agentic AI Self-Evolving

RocketMQ 消息集成:多类型业务消息-普通消息

Apache RocketMQ

云原生 消息队列 EventBridge 事件总线Eventbridge

普通人多跳槽才是正确选择?

王中阳Go

程序员 跳槽时间点

26届双非上岸记!快手之战~

王磊

2025混合应用开发战略引擎 成本重构与效能跃迁的双轨路径

xuyinyin

curl Rustls后端缓冲区溢出漏洞技术分析

qife122

curl 缓冲区溢出

生于云、长于云,RocketMQ 5.0再出发

Apache RocketMQ

阿里云 RocketMQ 云原生 消息队列 Apache RocketMQ

AiLock勒索病毒全面解析:运作机制与防御策略

qife122

数据保护 勒索病毒

Web网页端即时通讯源码/IM聊天源码RainbowChat-Web

JackJiang

网络编程 即时通讯 IM

融合数据库生态:利用 EventBridge 构建 CDC 应用

Apache RocketMQ

阿里云 云原生 消息队列 EventBridge 事件总线Eventbridge

SOLO 实时跟随模式:从需求到上线,AI 开发过程实时可见

火山引擎开发者社区

AI SOLO

架构提效的矛盾和矛盾的主要方面

京东科技开发者

使用Cyb3rWard0g的Sentinel To-Go快速部署Azure Sentinel——捕获Cobalt Strike攻击!

qife122

Azure Sentinel Cobalt Strike

跨境电商企业的海外舆情监测痛点与解决路径

沃观Wovision

跨境电商 沃观Wovision 舆情监测系统 海外舆情监测

2025陕西正规等保测评公司名单看这里!

行云管家

网络安全 等保 等保评测

全城狂欢:南京移动5G-A让热爱不再等待

极客天地

全球媒体平台危机频发,品牌如何借助社交媒体监控精准应对?

沃观Wovision

业务监控—一站式搭建jmeter+telegraf+influxdb+Grafana看板

京东科技开发者

破解BOM管理难题:MES信息化实施中BOM管理问题​

万界星空科技

数字化 制造业 生产管理系统 BOM mes

电信业网络安全保障方法小探讨

行云管家

网络安全 等保

不同阶段的出海品牌,该如何制定红人营销策略?

Wolink

海外媒体 海外推广 达人营销

看见才能管住:银行数据安全风险监测与治理

原点安全

Flutter跨端开发范式重构:小程序与App高效组装战略

xuyinyin

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