In addition to the panel discussion and keynote which the Ajaxians were gracious enough to let me participate in. I also gave a “regularly scheduled” talk on Dojo 1.0, many of the lessons we’ve learned leading up to it, and the philosophy of construction (and why it benefits you and your users).
The talk was packed, with folks actually standing at the back of the room. Thanks to everyone who turned up and especially to everyone who asked questions. Getting the kinds of focused, thoughtful questions that were asked always makes talks like these better for everyone.
Update: after my talk Andreas of the excellent qooxdoo framework made the point that my examples of how to use Dojo 0.9/1.0 widgets didn’t clearly enunciate how fully we support programmatic creation of all Dojo widgets. While beginning Dojo users may see markup-driven examples like:
<span dojoType="dijit.ProgressBar"
progress="20%"
...>
...
Dojo 1.0’s method of building widgets programmatically is hugely simplified from the 0.4.x days:
var pb = new dijit.ProgressBar({ progress: "20%" });
dojo.body().appendChild(pb.domNode);
...
Both examples create an equivalent widget, and every property that can be set via markup is also available to be passed via the configuration property bag that every widget expects when calling its constructor function via the “new” keyword. This lightweight convention, in conjunction with the alternate script types, allows for full feature parity between markup and programmatic construction of widgets. Both are first-class citizens in Dojo 0.9/1.0 and you can build your entire app with programmatic construction if you so choose.