写点什么

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

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

关注

评论

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

体育直播平台系统源码:如何有效防止后门、恶意代码和漏洞

软件开发-梦幻运营部

软件测试/测试开发/全日制 | Python全栈开发中的WebSocket实践:实现实时通信和互动性

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

测试

牛刀低代码开发实战—在线报工管理

牛刀专业低代码

低代码 专业低代码 起步牛刀低代码 牛刀低代码 牛刀专业低代码

软件测试/测试开发|什么是Python,我们为什么选择Python?

霍格沃兹测试开发学社

软件测试/测试开发/全日制 | 从前端到后端:Python全栈开发的入门指南

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

测试

软件测试/测试开发/全日制 | Python全栈开发实战:构建RESTful API

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

测试

云消息队列 Kafka 版生态谈第一期:无代码转储能力介绍

阿里巴巴云原生

kafka 阿里云 Serverless 云原生

如潮好评!优秀选手视角下的第二届粤港澳大湾区(黄埔)国际算法算例大赛

ModelWhale

人工智能 大数据 算法赛 粤港澳大湾区 算法开发

软件测试/测试开发全日制培训|Pytest跳过用例和失败重试

霍格沃兹测试开发学社

软件测试/测试开发/全日制 | 自然语言处理技术在人工智能时代的崛起与发展

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

测试

软件测试/测试开发|什么是pytest,我们为什么选择pytest?

霍格沃兹测试开发学社

软件测试/测试开发/全日制 | 从Ajax到WebSocket:Python全栈开发中的前后端通信技巧

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

测试

天谋科技联合 OpenCloudOS 完成技术兼容互认证

Apache IoTDB

摆脱自研难题,AUI Kit助力企业快速搭建专属互动课堂

阿里云CloudImagine

云计算 视频云

2024年区块链行业发展,项目涵盖内容

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

软件测试/测试开发/全日制 |前后端分离与Python全栈开发的协同工作

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

测试

软件测试/测试开发/全日制 | 数据交互与通信:Python全栈开发必备的HTTP知识

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

测试

构建未来:低代码在制造业的数字化转型

天津汇柏科技有限公司

低代码

软件测试/测试开发/全日制 | 人工智能的基本概念与发展趋势

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

测试

软件测试/测试开发/全日制 | 机器学习的原理与应用:算法驱动的智能革命

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

测试

软件测试/测试开发/全日制 | Python全栈开发之路:HTML/CSS/JavaScript基础深度学习

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

测试

深耕汽车检测设备领域,引领行业技术革新

Geek_2d6073

字节跳动 Spark 支持万卡模型推理实践

字节跳动云原生计算

机器学习 spark 云原生

软件测试/测试开发/全日制 | 学习使用ORM简化数据库操作

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

测试

软件测试/测试开发/全日制 | 数据库设计与Python全栈开发的默契合作

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

测试

2023 IoTDB Summit:宝武装备智能科技有限公司技术中心副主任赵刚《宝武集团设备智能运维超大规模分布式数据湖建设探索》

Apache IoTDB

OpenTiny 2023年度共建者榜单大曝光!!!

OpenTiny社区

开源 前端

老生常谈:Web 与低代码开发

快乐非自愿限量之名

Web 前端开发 低代码 开发

软件测试开发/全日制丨软件开发流程 学习笔记

测试人

软件测试

软件测试/测试开发/全日制 | 深度学习的崛起与在人工智能中的关键作用

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

测试

【第七在线】智能商品系统是否可以帮助预测新品的销售表现?

第七在线

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