BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Buzzword – RIA Word Processor: Built Using Adobe Flex / AIR

Buzzword – RIA Word Processor: Built Using Adobe Flex / AIR

This item in japanese

Bookmarks
Adobe recently acquired Virtual Ubiquity, the creators of Buzzword - a web based word processor. InfoQ.com connected with David Coletta and Tad Staley of Adobe Systems to learn more about the product, the challenges and benefits of using Adobe Flex for its development, and what the future holds for the product.

Coletta and Staley provided InfoQ.com an overview of the Buzzword product, features, and architecture:
Buzzword is a web based word processor, built with Adobe Flex. Buzzword looks and behaves like a normal word processor but it operates inside a web browser. It combines the rich user experience of desktop word processors with the ubiquitous access and collaboration capability of other web based word processors.

No other online word processor can approximate the rich experience, because they are constrained by the limitations of HTML and JavaScript.

This includes meticulous letter spacing and complete repagination of the document with each keystroke - instantaneously. Buzzword also offers easy and powerful image manipulation within the document, including drag and drop for placement and resizing. The significant performance improvement in Flash Player 9 made this approach feasible.

Buzzword is available free for public use at www.buzzword.com.
On the process of choosing the AIR/Flex platform for Buzzword:
In 2005, when we were first evaluating candidate platforms, the choices we considered for browser-based software development were Microsoft .NET, Java, AJAX (HTML + JavaScript), and Flex 1.5 on Flash Player 8. (At that time, Flex 2.0 was not yet available even in beta form, and Flash Player 9 was still under development.) Our must-haves were ubiquity (i.e., a platform already available on Windows, Mac, and Linux), zero install, rich text and graphics support, and high performance. None of the platforms we considered could meet this high bar, and we thought maybe what we were trying to do was impossible.

When the first beta releases of Flex 2.0 and Flash Player 9 became available in the fall of 2005, we updated our prototypes and discovered that the performance of the Flash platform had increased enormously. It was immediately clear to us that Buzzword could be built, and that Flash/Flex was the only platform that could do the job.
Next, Coletta and Staley were asked about the challenges encountered developing Buzzword using Flex:
We have encountered (and mostly overcome) quite a few challenges. Here are a few examples.

One serious technical challenge is the fact that, while the Flash/Flex environment is totally portable and works well under different OS platforms and browsers, there are a number of limitations of the Flash sandbox -- full keyboard support and the rich text clipboard among them -- that must be overcome by the use of JavaScript in the browser. Using JavaScript constrains the number of browsers we can support, makes it difficult for us to keep up with point-releases to the browsers we do support, and generally compromises Flash's promise of ubiquity. Furthermore, the hosting browser's toolbars and menu bar compete for screen real estate, and take away from Buzzword's streamlined approach to editing. Fortunately, the Adobe AIR platform will allow us to overcome the constraints of living inside the browser, by providing direct access to keyboard events and the system clipboard, and giving us full control over window chrome.

Another technical challenge is keeping Buzzword's user interface responsive without the use of background threads. ActionScript 3, the programming language used in Flex development, is fundamentally single-threaded, and requires asynchronous completion functions for all network operations. Performing time-consuming background operations on a separate thread is a common technique for maintaining responsiveness in a user interface, and since we can't do that, we have to resort to alternative techniques which are sometimes clumsy and difficult to implement and maintain. (But multithreaded programming is notoriously hard to do correctly, so this limitation is not without a silver lining.)

On the design front, it has been challenging to find the right balance between simplicity and judicious use of visual effects. Flash and Flex provide a very rich palette of animation and transition choices, and once animation is introduced into one area of an application's user interface, it becomes necessary to consider how to use visuals effectively throughout the application. Similarly, we have been able to innovate in a few key areas of interface design, such as Buzzword's formatting toolbar, document scroll bar, and collaborator bar, while working hard to strike the right balance between visual innovation and consistency.
InfoQ.com asked if there was anything Coletta or Staley would like to see added to Flex and/or AIR:
There are a number of possible improvements to Flex and AIR, but many of the constraints are necessary and would be very difficult to overcome, so wishing would be pointless. One thing that would be useful and realistic to ask for is a facility for compiling and running ActionScript code at runtime.
Coletta and Staley offered the following advice to those considering adopting Flex and/or AIR:
When you're looking for talent, don't worry too much about background in Flash or Flex. Not a single member of the Buzzword team had ever worked in Flash or Flex before starting on Buzzword. Instead, hire people with strong object-oriented software development backgrounds, with experience in languages like Java, C++, or C#. They'll find ActionScript 3 and the Eclipse-based Flex Builder environment to be quite comfortable and familiar.
Next Coletta and Staley were asked about the Adobe acquisition:
A key part of the Buzzword vision was to deliver an elegant user experience on the web, and this led to the evaluation and selection of Adobe's Flex as the development environment, with the application to be deployed on the Flash platform.

When Adobe saw the work that the Buzzword team had done on their platform, which included an early version on the newly announced Apollo (now AIR) platform, Virtual Ubiquity became the first recipient of Adobe's venture fund in the fall of 2006.

The Buzzword team realized that in order to tackle the crowded and chaotic new market, we needed to work with an established software firm to get the kind of stability and market exposure needed to effectively launch Buzzword.

Adobe was an obvious choice - not only because we built Buzzword on their great Flash platform, but because Buzzword fits so well into the Adobe heritage, which is all about great design and documents that matter. We think we can truly make a difference with Adobe, and help them in a variety of ways. Adobe has some exciting plans for the future, and Buzzword is poised to play an important role in their increasing presence in the area of web applications and collaboration. For more information on the acquisition, check the Adobe site to view the press release and the FAQ.
Coletta and Staley on what the future holds for Buzzword:
Buzzword will continue to evolve as a word processor - we're eager to implement some great designs and innovations in areas like change tracking and named styles. Because we're delivering Buzzword on-line, we can apply regular updates - we've settled into a 6-8 week update cycle, which should hold for the foreseeable future.

We also expect to add PDF export support in the near future. This was a requirement we heard from our users, even before news of the Adobe acquisition was made public.

As part of Adobe, we are eager to extend the Buzzword in a number of areas. First, of course, is the AIR platform, which will not only enable off-line use but will also provide a cleaner user interface (without distraction from the browser chrome) and even closer integration with the desktop.

Beyond AIR, Adobe's collaboration platform and emerging hosted applications will provide a rich portfolio of capabilities that will complement Buzzword nicely, and provide a great environment for collaborative on-line work.
Buzzword offers an excellent example of a true Rich Internet Application built using Adobe Flex. The experience of Coletta, Staley, and the Buzzword team should help those evaluating the RIA landscape.

Rate this Article

Adoption
Style

BT