— Addy Osmani (@addyosmani) May 14, 2015
What problems need to be solved these days have changed from those that originally drove Dojo 1 forward, but we are excited that Dojo 2 will do that again. The problems that Dojo 2 needs to solve today are quite a bit different from almost a decade ago when Dojo 1.0 was first released.
Doing ES6+ the Dojo-Way
In Dojo 1, there were a lot of patterns that we often refer to as the Dojo-way. While many of those patterns have migrated to Dojo 2, there are new patterns we are developing that we feel are a good way of approaching web applications.
For example, we have been eschewing the traditional concept of inheritance and constructor functions, instead focusing on factories that have more of their functionality expressed as mixins or traits. So instead of
new Widget(); you will see
Clarity and intent are also big “Dojo-way” items. It is not useful coming up with a brilliant API to have it not be clear to others what the API does. We are taking cues from other common APIs, so that features of Dojo 2 are familiar and just work.
Data is core to the enterprise–from collecting large amounts of data from customers, to being able to manage, visualize and action the data within the enterprise. One of the big focuses of Dojo 2 is recognising that data is at the heart of modern applications. Being able to access, correlate and manipulate vast sets of data within a web application is one of Dojo 2’s core raison d’êtres.
Doing the Right Thing
Internationalisation and accessibility are more than a necessary evil. They are principles that computing should be for everyone and that we should remove barriers for all people to access our applications. While enterprises obviously feel this pressure acutely, it is more than just meeting legislative requirements. It is a fundamental ethos of freedom and openness.
Therefore we are really excited that Dojo 2 will continue to deliver and focus on these aspects of applications as well as other features which are often requirements for large scale web applications.
Opinions Welcome (But Not Required)
The strong opinions about how to solve problems that guided Dojo 1 are not as relevant today. There are a different set of problems that Dojo 2 needs to have a strong opinion about, to ensure that its packages solve a finite set of problems well. So we are excited that Dojo 2 will have a strong concept of what an application is and how to architect and build that application. This should make it easy for new projects to be built with Dojo 2.
On the other hand, we know that if there is only one pattern that it is unlikely that it would actually fit anyone’s needs fully. Therefore Dojo 2’s packages should largely stand on their own, making it easier to have your own strong opinion about how to build applications.
If you want to know more about where Dojo 2 is at, up to date status information can be found at
dojo/meta on GitHub.