Speaking at The Ajax Experience conference here Oct. 24, Alex Russell, project lead for the Dojo Toolkit and president of the Dojo Foundation, said Dojo “is like crack for Web developers… Its like crack; once you start using it on a daily basis, you dont go back.”
Yet, using Dojo “actually leads to better software development.”
In addition, Russell said the Dojo Foundation released Dojo version 0.4 on Oct. 24.
“Though this is the first major release in some months, I can assure you that the Dojo project has not stalled,” Russell said.
Dojo began life as a project to unify disparate open-source DHTML development projects, Russell said.
“Dojo is all about the tool chain,” he said. “The tool chain has always been a limiting factor, so two and a half years ago, three toolkits got together” to form the Dojo toolkit to help web developers build better applications.
“We ship under two licenses,” Russell said. “You can do anything you want with it, except say you wrote it,” he said, noting that the liberal licensing is so “there shouldnt be a reason you dont use Dojo other than taste.”
Indeed, the “Dojo Way” is to reduce barriers to adoption; to put simple first, fast later; and to encourage developers to bend to the constraints of their environment, Russell said.
These tenets, in addition to the technologys open community and independent foundation, have caught the eye of major vendors and organizations.
Sun Microsystems is using Dojo heavily, having based its jMaki AJAX framework on Dojo.
Sun also has joined the Dojo Foundation.
Meanwhile, IBM works closely with the Dojo Foundation on accessibility issues and has donated code to Dojo.
Dojo consists of several layers including a package system at the bottom, language utilities, an event system, UI utilities, a widget system and custom widgets as the very top layer.
The package system or bootstrap layer is the core of the Dojo “simple first” platform, where each layer depends on the one beneath it, Russell said.
Dojo has a build system—a build tool in Dojo that is a set of Ant tasks that enable developers to generate a release directory, Russell said.
The language utilities feature wrappers for common idioms, functional programming APIs and forward-compatibility shims, he said.
“It has a bunch of functional programming helpers,” Russell said. “All of our APIs are namespaced. Its very extensible,” he said of the toolkit.
In addition, Russell said Dojos event system, which represents the most addictive part of the toolkit, is runtime aspect-oriented programming.
“Any function can be notified when any other function fires,” he said.
And the toolkit already comes with several useful widgets, including a rich text editor, content pane, split panel, tabs, fisheye list, sorting/filtering table, “Yahoogle Maps,” tree and dialog wizard, Russell said.