Why Tapestry JavaScript Support Sucks T5.initializers Simple things require "heavy" structure T5 namespace / Tapestry namespace – what a mess! Prototype dependency … where's jQuery? Too much based on Prototype's Class Requires a lot of monkey patching to customize
Module style Modules seem to be shorter, easier Parallel loading of dependencies ➠ faster page load Implicit hygenic functions to hide private properties & functions Nice avoidance of globals Easy to monkey patch Tapestry can override an entire module
CoffeeScript CoffeeScript ➠ ❝… a little language that compiles into JavaScript❞ Concise and readable Optional parenthesis Implicit returns Concise function definitions Great fit with Underscore!
Also in 5.4 (hopefully!) Built-in Twitter Bootstrap stylesheets! Extensible Dashboard page Modules aggregated into stacks LESS and/or SASS support Cometd or WebSocket support … plus lots of little stuff … whatever we can finish soon, for December release
Things you've missed since 5.1 Page singletons Many performance enhancements Improved meta-programming with Plastic Live reloading in the services layer JavaScript / CSS minimization Kaptcha support HTML5 support Non-private component fields
… but wait, there's more! @ActivationRequestParameter – automates onActivate() / onPassivate() @RequestParameter Full HTML exception report for failed Ajax requests MultiZoneUpdate ➠ AjaxResponseRenderer service Underscore.js Tree component Skinning / Theming support User Alerts