DDD was a huge success, thanks in no small part to Google who is generously hosted the event.
Day 1 started with folks trickling in early, and for a bit we thought the turnout would be light, but by 9:30, the large room which we're in was totally full, and the buzz of old friends catching up and new acquaintances being made could be heard down the hall. Dylan and I actually thought twice about getting things under way, but the agenda was full and time at these things is always too short.
After a round of introductions, the morning started with run-downs of what the Dojo community has achieved in the past year, and reflecting on 2007 there's a lot to be proud of. From turning dojo.js into a tiny, high-performance core to adding ground-breaking features like full accessibility and internationalization to the widget set, to high-end features like grid, charting, and dojo.data, 2007 was a great year. So what about 2008?
Maybe most importantly for users, there are several Dojo books either in beta or announced (Pragmatic, O'Rielly, and Prentice Hall). Rawld Gill, co-author of the Pragmatic book, was even there to help answer questions and get the low-down on the future of the toolkit.
As the purpose of the DDD's is to help the community decide on a direction, we jumped right into our priorities and new features for Dojo 1.1 and beyond. Each of the sub-team leads spent a couple of minutes talking about what's happening in their part of the toolkit, and lots of great questions helped everyone understand how the new features will change and improve how users work with Dojo and how Dojo applications will benefit.
James Burke (AOL) led off with his work on the build system to support multiple versions of Dojo in a single page. These changes will allow anyone to rename all of the Dojo modules to some other namespace (say, dojo.* can become bea.* or ibm.*). Also, Dojo 1.1's build system will include not only CSS stripping/compression, but also handles the inlining of @import statements, reducing the number of requests on the wire and letting Dijit themes be structured cleanly in development.
Bill Keese (IBM) caught us up with Dijit 1.1, and the improvements in API consistency and themes really look great. Torrey Rice's (SitePen) updates to the default Tundra theme have landed and Nikolai Onken has completely revamped the Soria theme as well as adding a new rounded theme named Nihilo. Thanks to this work, along with James' updates to the build system, writing themes is now super-simple.
Adam Peller (IBM) outlined the new BorderContainer layout system which combines optional splitter layouts with an easier-to-understand layout construction model.
Dustin Machi (SitePen) showed us the next generation of JSON-RPC which features pluggable back-ends and a new version of the SMD format which is being proposed as the basis for the method description format in JSON-RPC 2.0. As with Dojo 1.0's strong support of WAI-ARIA, Dojo is leading the way among Ajax toolkits in providing mature, forward-looking implementations of important standards which make the construction of great applications easier and better for everyone.
Neil Roberts (SitePen) wowed us with his implementation of Django's templating language. As of this past week, dojox.dtl includes a mixin for integrating with the Dijit templating system, and full-backwards compatibility, which gives widget authors an easy upgrade path to a templating language which support conditionals, iteration, inheritance, easy re-rendering, and nearly the entire set of Django's filtering and formatting primitives. Not content to rest on his laurels, Neil also showed us how dojox.dtl has optional integration with dojo.query for super-simple, ad-hock templating.
Neil also gave us an update on the status of the util.jsdoc module, which is seeing tremendous progress. Discussion on this continued in the afternoon, and many decisions were made regarding prioritization and direction of the API tool. More on that as the changes land in the coming weeks.
Eugene Lazutkin (SitePen) has been a busy man. His impressive work on dojox.gfx, dojox.gfx3d, and dojox.charting made Dojo 1.0 the best tool around for portably drawing vector graphics in a browser without plugins, and for 1.1 he's updating dojox.gfx to include animations, based loosely on easy-to-use Dojo Core animation APIs. Shapes, transformations, colors, and other dojox.gfx properties can be animated, chained, and eased on any 2D drawing object in Dojo 1.1, all using the high-performance, single-timer animation system from Dojo Core.
Speaking of animations, Peter Higgins gave us a tour of some of the great components he's been whipping up now that Robert Penner's awesome easing function set has landed under CLA in dojox.fx.easing. Of course, you can plug these great easing functions into any Dojo animation, but examples like dojo.moj.oe really give them life.
And all of this was before lunch!
As is our custom, the DDD lunch hour is set aside for anyone to give quick demos of things they're working on or building with Dojo, and this lunch didn't dissapoint.
Rob Christensen and another of his colleagues from Adobe were kind enough to give us a thorough walk-through of Adobe AIR as well as showing off Dojo 1.1's comprehensive support for AIR. This work was done by SitePen (my employer) and Chris Barber with financial support from Adobe. Not only does the Dojo package system work as expected in AIR, new dojox.storage providers for AIR give a simpler interface onto AIR's database, including for encrypted data. The demo showing a full Dojo-based application inside of AIR for quickly taking notes started to show the potential.
Dustin showed off SitePen's work for Eye-Fi's administrative interface, which runs as a local single-page application for managing all aspects of your Eye-Fi card.
Scott Miles and Steve Orvell of WaveMaker demo'd their amazing in-browser IDE for Dojo applications (screencast), and presented the community with some awesome opportunities for collaboration. Not only does their tool provide visual construction and property-based configuration of widgets in an application, it generates regular-old JavaScript objects which can be composed with other components in their tool or used inside of existing pages. Amazing stuff.
Karl Tiedt also showed the work he's been doing to improve the administration interface of a piece of embedded networking equipment before the food wrapped up and we got down to making decisions for the coming year.
I won't go over everything discussed in the afternoon, but will briefly summarize the most important points:
- There will be no Dojo 2.0 this year. Instead, we'll be focusing on several major, fully backwards-compatible releases as well as building out the infrastructure to enable community modules and DojoX projects to be released independently of the Core/Dijit release cycle.
- The plan for upgrading the website, marketing messages, and infrastructure was outlined. Major changes are in store for how the primary website is organized and who it's targeted at. This work is ongoing thanks to the support of BEA and SitePen.
- Major upgrades to the grid were discussed and prioritized. A new forum has been created to coordinate the development of these new features
- Much discussion of the API viewer tool yeilded decisions about how to proceede, and much progress was made by Neil Roberts and others during the two days of DDD toward implementing those goals.
Obviously, while all of this was happening, much hacking happened, and much of Day 2 was dedicated exclusively to giving contributors a chance to work face-to-face...a luxury we almost never have.
About 6, we adjounred to the Tied House for food, beer, and good company. As we broke up for the evening many hours later, there was a palpable sense that 2008 is going to be an exciting year for Dojo. For as much great stuff is going into Dojo 1.1, it's just the start. Each successive DDD event helps solidify my feeling that open projects run by open communities for the benefit of everyone can not only hold their own, but can solve hard problems and define the future of the Open Web.
