写点什么

Buzzword –使用 Adobe Flex / AIR 构建的 RIA 文字处理器

  • 2007-12-03
  • 本文字数:2942 字

    阅读完需:约 10 分钟

Adobe 最近投资了基于 web 的文字处理器 —— Buzzword 的创建者 Virtual Ubiquity 公司。InfoQ.com 联系了 Adobe 系统公司的 David Coletta 和 Tad Staley 以了解该产品,使用 Adobe Flex 来开发 Buzzword 的挑战和好处以及 Buzzword 的远景规划。

Coletta 和 Staley 为 InfoQ.com 提供了 Buzzword 产品的特征和架构的概况:

Buzzword 是使用 Adobe Flex 构建的一个基于 web 的字处理器。Buzzaword 看起来用起来都象一个正规的字处理器,但是它是在一个 web 浏览器中运行的应用。Buzzword 结合了桌面字处理器的丰富用户体验,和其它基于 web 的字处理器的随处访问和协同工作的能力。
没有其它的在线字处理器可以提供这么丰富的用户体验,因为在线字处理器受到 HTML 和 JavaScript 功能的限制。
Buzzword 提供的丰富用户体验,包括随着每次击键即时进行的字母间距微调和重新分页。Buzzword 还提供了在文档中简单而强大的操作图像的功能,包括通过拖拽来放置图片和改变图片的大小。Flash Player 9 的性能有了显著的提高,这使得通过拖拽来放置图片和改变图片的大小是可行的。
Buzzword 对于公众是免费的,请访问 www.buzzword.com

关于为什么会选择 AIR/Flex 平台来开发 Buzzword 的问题:

在 2005 年我们开始评估候选平台的时候,我们考虑的基于浏览器的软件开发的平台包括 Microsoft .NET,Java,AJAX (HTML + JavaScript) 以及 Flex 1.5 on Flash Player 8。(当时 Flex2.0 的 beta 版还不可用,Flash Player 9 正在开发中。)我们理想的开发平台必须具备的因素包括:普遍性(即在 Windows,Mac 和 Linux 都可用的平台),零安装,支持富文本和图形,以及高性能。上述的平台没有一个满足所有的条件,当时我们认为也许我们要做的是不可能的事情。
当 Flex2.0 的第一版和 Flash Player 9 在 2005 年秋季上市的时候,我们更新了我们的原型产品,发现 Flash 平台的性能有了非常显著的提高。我们马上意识到是可以 Buzzword 可以实现的,而 Flash/Flex 平台是唯一的选择。

接下来,Coletta 和 Staley 被问到使用 Flex 开发 Buzzword 过程中遇到的挑战:

我们遇到了(并克服了大多数)相当多的挑战。这里有一些例子。
一个严重的技术挑战是,虽然 Flash/Flex 环境是完全可移植的并且在不同的操作系统和浏览器中工作良好,但是 Flash 沙箱有许多限制——完整的键盘支持以及在 Flash/Flex 环境中的富文本剪贴板——这些功能必须使用浏览器中的 JavaScript 来实现。使用 JavaScript 会限制我们能支持的浏览器数量,使得我们难以跟上我们所支持的浏览器的更新的步伐,总体上损害了采用 Flash 所带来到普遍性。
此外,宿主浏览器的工具栏和菜单栏与 Buzzword 竞争屏幕面积,这削弱了 Buzzword 的优雅的编辑方式的效果。幸运的是,Adobe AIR 平台通过提供对键盘事件和系统剪贴板的直接访问,给我们完全控制窗口的能力,使得我们得以克服在浏览器内运行应用的限制。
另一个技术挑战是不使用后台线程来保持 Buzzword 的用户界面响应能力。在 Flex 开发中使用的编程语言 ActionScript 3,根本上是单线程的,对于所有的网络操作都需要异步的来完成功能。在一个单独的线程中执行费时的后台操作,是保持用户界面的响应能力的一种常见技术。由于我们不能这样做,我们不得不采用其它技术来保持用户界面响应能力,这些技术有时候是笨拙而且难以实现和维护的。(但是众所周知,多线程编程是很容易出错的,所以这个限制并不是一点益处都没有。)
在开始设计的时候,在简洁和恰如其分地使用视觉效果之间作出正确的平衡是个巨大的挑战。Flash 和 Flex 提供了非常丰富的动画和过渡,只要在应用用户界面的某个区域使用了一个动画,就必须全局地考虑如何有效安排整个应用的视觉表现。类似的,我们在界面设计的一些关键领域作出了革新,例如 Buzzword 的格式化工具栏,文档滚动栏和合作者栏,同时努力在视觉革新和一致性之间保持平衡。

InfoQ.com 询问是否有什么东西 Coletta 或者 Staley 希望增加到 Flex 和 / 或者 AIR 中:

Flex 和 AIR 有许多可能提高之处,但是许多现有的约束是必要的而且非常难以克服的,所以单纯的愿望是没有意义的。一项有用而且现实的改进是一个用于在运行时编译和运行 ActionScript 的工具。

Coletta 和 Staley 对于打算采用 Flex 和 / 或者 AIR 的用户提供了如下建议:

当你寻找天才的时候,不要太关注他是否有 Flash 或者 Flex 方面的背景。Buzzword 团队没有一个成员在开始 Buzzword 项目之前使用过 Flash 或者 Flex。相反,雇佣有很强的面向对象软件开发的背景,有 Java、C++ 或者 C#语言经验的高手是更好的选择。他们会发现 ActionScript 3 和基于 Eclipse 的 Flex Builder 环境是非常舒适和熟悉的。

接下来 Coletta 和 Staley 被询问了有关 Adobe 投资的情况:

Buzzword 的愿景的一个关键部分是在 web 上提供优雅的用户体验,这导致了我们评估并选择 Adobe 的 Flex 作为开发环境,我们的应用部署在 Flash 平台上。
当 Adobe 发现了 Buzzword 团队在他们的平台上做的工作,包括在最近宣布的 Apollo(现在的 AIR)平台上的一个早期版本后,Virtual Ubiquity 在 2006 年秋季成为 Adobe 风险投资基金投资的第一个项目。
Buzzword 团队认识到为了应付拥挤而混乱的新市场,我们必须与一家成熟的软件公司合作来得到某种公司运作的稳定性和产品的市场曝光,以有效的推动 Buzzword 进入市场。
Adobe 是一个显而易见的选择——不仅仅是因为 Buzzword 构建于 Adobe 伟大的 Flash 平台之上,而且因为 Buzzword 与 Adobe 的传统十分吻合,两者都与伟大的设计和文档相关。我们相信与 Adobe 一起我们真的可以创造奇迹,并且在许多方面帮助 Adobe。Adobe 对于未来有一些令人激动的计划,而 Buzzword 已经准备好在 Adobe 日益增长的 web 应用与协同工作方面的解决方案中扮演重要的角色。欲得到更多的关于 Adobe 投资的信息,请查阅 Adobe 网站的新闻与 FAQ。

Coletta 和 Staley 谈论了 Buzzword 的将来:

Buzzword 将继续作为一款字处理器软件而发展——我们渴望实现一些伟大的设计和创新,例如变化跟踪和给样式命名。因为 Buzzword 是在线交付的,所以我们能够定期更新它——我们设定了一个 6~8 周的更新周期,这样我们可以把握可以预见的未来。
我们还希望最近可以增加导出 PDF 的功能。这是在 Adobe 的投资公开之前从我们的用户那里得到的一个需求。
作为 Adobe 的一部分,我们渴望在许多领域扩展 Buzzword。当然,首先是 AIR 平台,我们希望不仅仅使得用户可以离线使用 Buzzword,而且会提供一个更干净的用户界面(没有浏览器的烦扰)甚至与桌面更紧密的集成。
除了 AIR,Adobe 的协同工作平台和正在发展的主机应用会为 Buzzword 提供一套完美的丰富的功能集补充,为在线协同工作提供一个伟大的环境。

Buzzword 为使用 Adobe Flex 构建一个真正的富互联网应用提供了一个出色的样板。Coletta,Staley 和 Buzzword 团队的经验会帮助那些正在评估 RIA 技术前景的人。

查看英文原文 Buzzword - RIA Word Processor: Built Using Adobe Flex / AIR - - - - - -

译者简介: 曹云飞,西安交通大学计算机软件硕士。现就职于 Ethos ,热衷于新技术的钻研,软件架构与敏捷开发,目前从事 Home Control 方面的工作。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-12-03 13:001929
用户头像

发布了 47 篇内容, 共 12.4 次阅读, 收获喜欢 3 次。

关注

评论

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

安全之路其修远兮,吾将上下而求索

Thrash

Knative 基于流量的灰度发布和自动弹性实践

阿里巴巴云原生

Serverless 容器 开发者 云原生 k8s

图解云原生应用设计模式

倪朋飞

Kubernetes 云原生

微信业务架构

Fleng

架构实战营

架构实战营 模块一作业

Dylan

架构实战营

给视频添加雪花飘落特效

老猿Python

OpenCV 音视频 图形图像处理 视频特效 引航计划

Python系列:初遇python

Bob

Python 编程 4月日更

有哪些可以提高代码质量的书籍推荐?

JavaGuide

Java 架构 计算机基础 重构 代码质量

架构实战营 模块1 课后作业

Keyto

架构实战营 模块一 课后作业

Lingjun

架构实战营

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

我不是坏人

Fluid — 云原生环境下的高效“数据物流系统”

阿里巴巴云原生

人工智能 云计算 容器 云原生 存储

史上最全的Java面试题库宝典,Github上标星200k,太香了!

Java架构之路

Java 程序员 架构 面试 编程语言

金三银四旗开得胜!春招字节正式批4面,顺利拿到offer

Java 编程 程序员 架构 面试

架构实战营模块1作业

半夏

学习 架构实战营

如何让使命、愿景、价值观落地

石云升

价值观 使命 愿景 28天写作 4月日更

阿里巴巴开源容器镜像加速技术

阿里巴巴云原生

Serverless 容器 云原生 k8s 存储

聪明人的训练(六)

Changing Lin

4月日更

Flink集成Iceberg在同程艺龙的实践

Apache Flink

flink

模块一课后作业

追随哆咪

架构实战营

架构实战营 模块一 作业

Pitt

翻译:《实用的Python编程》02_00_Overview

codists

Python

微信业务架构图

@oo?金樱子

模块1作业

王硕

架构实战营

阿里的 RocketMQ 如何让双十一峰值之下 0 故障?

阿里巴巴云原生

容器 运维 云原生 k8s 消息中间件

架构实战营课程1作业

求索

学习 架构实战营

双非本化学跨专业,投岗阿里/滴滴后端三面,最终拿下offer

Java 编程 程序员 架构 面试

【粉丝需求】如何把一个前端网页都搞下来?

孙叫兽

大前端

换工作需要做哪些准备

zhou

职业规划

七进七出,终获阿里32k*16offer,这就是我悲惨的面试经历~

Java架构师迁哥

常用正则表达式整理【总结】

孙叫兽

正则表达式 大前端 正则

Buzzword –使用Adobe Flex / AIR构建的RIA文字处理器_Java_Jon Rose_InfoQ精选文章