Dojo 2 is the most substantial rethink to the Dojo Toolkit in ten years. As it nears Beta status for the majority of its modules, quite a bit has changed these past few months as it has evolved into a powerful solution for building enterprise applications.
Dojo 2 is a next generation framework authored to emphasize:
Efficiency. Code structure and developer ergonomics have been challenged at every turn resulting in impeccable code quality.
Longevity. Sustainable code that will last and adapt as the platform changes is a key consideration for large-scale development projects.
Modularity. Designed as a collection of packages that may be used independently or cooperatively, allowing for development flexibility.
Focus. The focus is enterprise-driven, highlighting scalability as well as powerful, built-in features including support for large data sets, a11y and i18n.
Dojo 2 strives for an efficient development approach through common patterns and best practices. Refined APIs and consistent paradigms lead to a robust, forward thinking approach.
Dojo 2 focuses on quality, with exhaustive test suites and comprehensive code coverage. The deliberate architecture joined with a purposeful combination of tools and technology creates a smooth approach to building modern web applications.
With a foundation on ES6+ and its annual release cycle, we begin with a solid base feature set and a strategic approach to shimming future features.
TypeScript extends ES6+ to support development time types and interfaces, leading to first-class IDE support and powerful tools for understanding your code. Dojo 2 leverages TypeScript's quarterly updates to help teams deliver code with clearer intent.
Dojo 2 embraces functional reactive programming concepts, which have come a long way since Dojo 1’s early get/set methods and virtual scrolling grids. Dojo 2 supports a unidirectional data flow approach, where one can easily react to and/or observe changes to data.
Dojo 2 was conceptualized with the guiding principle that a developer could have a build up and running in seconds and modifying and deploying real apps in minutes.
The Dojo 2 UI widget system provides a system for building Reactive, TypeScript Web Components. It leverages a Virtual DOM and HyperScript over templates or JSX and raw CSS and css-next over traditional preprocessors.
Its widget-scoped CSS classes and autocomplete make it easy to discover those classes for use within our widget code. It also provides a suite of out of the box widgets which are easily extensible including dgrid, charts and more.
The Dojo 2 roadmap highlights many of the details, but at a high level our goal is to release Dojo 2 later this year following 3 Beta releases and a release candidate phase.
Though positioned to meet the needs of the enterprise, at its core, Dojo 2 will be focused on building a healthy open-source community that promotes growth, best practices and code stewardship to its users in an environment that embraces respect and inclusivity.