Labs/Thunderhead/FAQ

From MozillaWiki
Jump to: navigation, search

What is Thunderhead?

Thunderhead has two goals:

  • Web applications have traditionally been limited to composing visual interfaces from DOM elements and pre-rendered images. Thunderhead explores what's possible when adding <canvas>-rendered components into to mix.
  • There are many ways to achieve interface layouts; web developers have traditionally been limited to CSS. Thunderhead explores generalized JavaScript-driven layout schemes as replacements or supplements to CSS layout.

How does Thunderhead compare to Adobe Flex, Microsoft Silverlight, Sun JavaFX, etc.?

Thunderhead is similar to all of those approaches in that it takes a rendering surface and builds a GUI toolkit on top of it. It differs in that it is directly integrated into the browser, while these other technologies are based on browser plug-ins.

How does Thunderhead compare to Ext JS, Dojo Dijit, jQuery UI, Cappuccino, etc.?

As of this writing, no major framework uses <canvas> to render components. Most do not use JavaScript-based layout. Further, most of these frameworks have JavaScript-centric APIs that depart from the Web's traditional of declarative interface construction.

Thunderhead's combination of intermixed DOM/canvas components, pluggable JavaScript layout (with an initial grid-based declarative grammar), declarative HTML-like interface definition, and its use of CSS to style components is when packaged together a unique offering.

As Thunderhead is an experiment, it is hoped that the lessons and concepts learned from Thunderhead can be applied to frameworks like these, and vice-versa.