Dijit
- unified look and feel for all widgets
- ambitious a11y and i18n features in every Dijit widget
- a mature CSS-driven theme system with multiple, high-quality themes
- huge improvements in system performance
- data-bound widgets
- Declarations for lightweight widget writing
- a new page parser that allows instances of any class, not just widgets
Core
- reduced API surface area (easier to remember and use)
- dojo.query() always available, returns real arrays
- from-scratch high-performance DnD system
- Base (dojo.js) is 25K on the wire (gzipped)
- dojo.data APIs finalized
- new build system
- new test harness for both CLI and browser use
- dojo.behavior now marked stable and based on dojo.query
- excellent animation APIs with Color animations in Base (always available)
- all the features you've come to count on from Dojo (RPC, JSON-P, JSON, i18n, formatting utilities, etc.)
DojoX
- high quality implementations of previously experimental features: gfx (portable 2D drawing), data wires, offline, storage, cometd, etc.
- dojox.gfx now includes Sliverlight support
- many more features and improvements than there's room for here.
The performance improvements sound significant:
Dijit apps about 1/2 the size compared to 0.4 Page load time much faster: no javascript sizing in widget code
Blogger Daniel Ruspini wrote up his impressions of 0.9 from the Ajax Experience conference earlier this month:
...although I'd heard a lot about what was happening with 0.9 this was the first time I'd seen some of the changes and real size/performance numbers. The idea behind 0.9 was to scale down the code which had grown bloated over time due to the nature of the core principles: support as many browsers as possible, allow contributers to add widgets to the widget library, support backwards-compatibility code. What they found was that 30% of the code was expendable. Also the widgets had been written in a variety styles and were not all consistent in use; while others were not used by most developers. In some cases very popular widgets were trying to do too much by covering every possible use case which made them slow (ex. Button)...
Dojo 0.9 is backwards-incompatible with all previous Dojo releases. A porting guide is available for users looking to move from 0.4 to 0.9.