InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Rolling Out Cannonball

Posted by Moxie Zhang on Nov 06, 2008

Sections
Development
Topics
Java ,
Rich Internet Apps
Tags
W3C ,
Flash

One important characteristic of rich Internet application (RIA) technologies is the need to support Web standards. The newly released Cannonball ActionScript library is at the forefront of efforts to incorporate major Web standards into Adobe Flash-based RIA development. InfoQ spoke with Cannonball creator, John French, to gain more insight.

French began by explaining:

Cannonball is an ongoing effort to implement the DOM Level 3 and CSS3 specifications, as defined by the W3C, in ActionScript 3.0. Currently, it's made up of:

  • a CSS3 parser and object model
  • a DOM base implementation
  • an HTML DOM implementation
  • an engine for browsing and rendering all of the above

He went on to say the motivation for Cannonball was to make Flash a better “Webizen” by allowing it to leverage the strengths of existing Web technologies. He notes:

Much of the content that HTML was designed to represent is trapped inside SWFs or hidden from the Web in home-brewed XML formats that aren't very accessible. Cannonball helps developers build Flash projects on top of technologies that are familiar, search-engine friendly, and interoperable.

Recognizing that there similar solutions using other languages are available, French observes:

In ActionScript, I know of the DENG project, but it's not being maintained anymore. It's also written in ActionScript 1.0. Java and others have these bases covered, but none of them enjoy Flash's widespread presence on the Web. I want to focus on the strengths of each technology in concert, allowing Flash to do what Flash does best atop a foundation that is still very much a part of the Web.

For example, French says, there are three main cases where Cannonball really stands out as an optimal solution:

  1. Adding CSS3 to any ActionScript 3.0 project
  2. Using any XHTML-producing (or HTML-producing with a little Tidy) CMS as a Flash content manager (ex. WordPress or Joomla)
  3. Prototyping content as interactive HTML before committing to Flash development

On how Cannonball was developed, French recalled, “Cannonball was built on a Mac with jEdit, Flash CS3, Ant, and the Flex SDK. It uses the Memorphic XPath library, BulkLoader, and the Adobe corelib.”

With respect to the future of Cannonball, French comments:

There's still a lot of work to be done. My plans right now are to focus on the browsing engine, as it's seen the least attention. Afterwards, my primary focus will be CSS3 support, because this has the greatest potential for use outside of the rest of the project. Optimization efforts will be ongoing.

InfoQ will continue to keep its eye on the rollout of Cannonball to keep you abreast of developments.

No comments

Watch Thread Reply

Educational Content

Jesper Boeg on Priming Kanban

In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.