funkyfrogstock - Fotolia
Dojo Toolkit 7 focuses on JavaScript developer productivity
Dojo Toolkit version 7 is now available. The widely used, mature JavaScript framework favored by enterprise shops gains more features for developer productivity.
The team behind the Dojo Toolkit JavaScript framework has released Dojo 7, marking the 16th year of the venerable toolkit's existence.
Dojo 7 targets developers building modern web apps using TypeScript, the open source superset of JavaScript. The framework helps developers build simple static websites as well as enterprise-scale reactive web applications, said Dylan Schiemann, co-creator of Dojo and CEO of Living Specification, a startup that offers a SaaS platform for writing software specifications.
Dojo is an OpenJS Foundation Impact Project, putting it among the largest and most mature ones hosted there. The Dojo 7 release adds more than 20 new widgets, including data-aware widgets, widgets for building column layouts and widgets for such things as cards, forms and passwords to help developers build applications faster. Overall, version 7 provides new features, bug fixes and general improvements across the framework.
The Dojo team set out to improve out-of-the-box usability of each widget, standardize widget property patterns across the library and improve the theming experience for end users, Schiemann said.
For instance, Dojo's support for the Custom Elements portion of Web Components provides interoperability with other frameworks and component systems, said Anthony Gubler, vice president of engineering at software development company SitePen in Milton Keynes, U.K., in a blog post.
Dojo 7 also introduces Dojo Parade, a new package for building widget documentation and examples from within an application or widget library.
One developer hailed this addition to Dojo.
"I think the updates to '@dojo/cli-create-widget' to scaffold reusable widgets is really nice," said Rene Rubalcava, a software engineer at mapping software provider Esri in Redlands, Calif. "It sets you up to build a shareable widget library, including creating web components and provides some nice generated documentation with the new Parade library. This was a feature I was looking forward to, because the steps to create a widget library were a bit more manual before and now it's much simpler to get started."
Dojo competes in a crowded field of JavaScript frameworks that includes the likes of Angular, React, Vue, Ember and others. However, despite Dojo's age, in another sense it is not as ancient as some might perceive. That's because there are essentially two tracks of Dojo -- the old version that was built to solve the needs of how to build real software in a browser, namely Internet Explorer, and modern Dojo, which is just a few years old, Schiemann said.
Dojo has also been influential toward the creation of competing JavaScript frameworks.
"React itself is heavily inspired by Dojo; they wanted something like Dojo that didn't have the legacy of seven-plus years of stuff," Schiemann said. "So they basically rewrote it. And they were able to do some things that we couldn't do because we were supporting old [Internet Explorer versions]."
Therefore, Dojo has a "weird duality" of an old legacy platform that maintainers still support because many developers still use it, Schiemann said. "And we've got this new shiny thing that is smaller, leaner and more efficient."
Right tool for the job
Dojo is a full-blown framework, much like Angular or Ember. This comes in handy for certain tasks.
"For most applications, I don't need to add libraries to handle styling or state management," Rubalcava said. "Dojo provides what I need and there are rare cases when I might need something extra. The widget library updates also make it easier for me to keep a library of widgets I can reuse, make them themeable and I'm good to go."
Modern Dojo aligns more with newer JavaScript frameworks such as Svelte (initially released in 2016) or Stencil (introduced in 2017) in terms of maturity.
"So we kind of had the luxury of this new thing and we've been able to look at React and Vue and say, well, we didn't like this, we like this standard and we aligned with this," Schiemann said. "So we have the benefit of that actually being quite a bit newer."
Another standout ability in Dojo 7 is the new Resources feature for creating data-aware widgets. Dojo has had the ability to create application level stores for state management for a while. But with Resources, a developer can create simple templates that fetch external data, write to local storage and pass them around to multiple widgets that might each do something different with the data.
"One could display a list, another could display a chart, another could provide some statistics," Rubalcava said. "And since the Resources feature manages data interaction for you, each widget could update the data or ask for new data and the results propagate to all the users."
Dojo 7's ultimate goal is to help developers to build more applications faster and better compared to competing frameworks or older versions of Dojo, but nothing is guaranteed.
"Dojo is one of the larger JavaScript frameworks and with that it has pros and cons of all larger frameworks," said Holger Mueller, an analyst at Constellation Research. "Allowing developers to automate a lot of use cases is the most prominent on the pro side; learning a complex and larger framework is the most prominent on the con side."
Dojo is popular with enterprise developers largely because enterprises tend to need support for a wide variety of browsers, which Dojo provides. In addition, enterprises historically have problems that are difficult to solve, such as implementing data grids, charts, internationalization, accessibility, authentication, and user roles and permissions.
Dylan SchiemannCo-creator of Dojo and CEO of Living Specification
"Most of the frameworks would solve these issues in one-off ways that weren't actually realistic for an enterprise to embrace," Schiemann said, noting that Dojo had early backing from IBM, which builds lots of enterprise applications.
The evolution of JavaScript standards, particularly ECMAScript 6, helped to make things easier for developers, but there is still complexity.
"We still feel like enterprise developers are struggling with building complex software with JavaScript," Schiemann said. "And that's kind of why we focused on the enterprise over the years. We feel like that's the area where there's the most need for support and help."