[dojo-contributors] what is the raison detre for dojo 2.0.

James Burke jburke at dojotoolkit.org
Thu Oct 4 15:45:31 EDT 2012


On Wed, Oct 3, 2012 at 4:54 PM, Rawld Gill <rgill at altoviso.com> wrote:
> As we being moving forward with 2.0, it seems this foundational question is
> important to answer: what is the raison d’etre for dojo 2.0?

As always, this is just IMO, and since I am not an active Toolkit
committer grade this feedback accordingly, to the point of discarding
it:

The Dojo Toolkit's foundations were about trying to bring the future
of web development now, solving the hard problems in a modular way,
with pieces that were known to work well together, in terms of API and
licensing. It started when web dev was in a much more nascent state,
and many support tools needed to be developed around it -- doc
formatting, testing and build tools.

Dojo has become a tool for larger web apps and used mostly by larger
corporations, particularly since those spaces value larger coherent
codebases with the extra warm fuzzies the licensing and a CLA brings.
They want a solid, predictable substrate to build upon.

If there is a Dojo Toolkit 2.0, it should be treated more like 1.x
releases with perhaps some cruft removed, because the people that
currently pay for Dojo, like IBM, value stability and continuity.

---

In my ideal world, a new toolkit, or maybe just a Dojo Foundation
committer subgroup, would be set up that builds a set of separate
modules under separate repos on github that target:

* a new baseline of modern browsers that autoupdate in a timely fashion
* ES5+
* are OK with native/global shims, like array extras, and anything
that conforms to specs, perhaps partnering with Modernizr/hasjs to get
the tests under any appropriate license/CLA setup.
* Match closely what ES6 will allow for classes, but usable via an API
instead of any new keywords/syntax.
* Object.observe-like shim to the extent that is possible in ES5/6.
* Web Components/x-tag shims for "widgets".
* For DOM manipulation, look to querySelectorAll/new DOM creations
calls, falling back to conformance with jquery-inspired APIs, like
zepto.
* a module system that shimmed into any runtime API in ES6 modules,
using AMD in the meantime and if that path does not materialize.
* a module metadata approach that expresses dependencies for setting
up projects, but allow for single file JS modules to get installed in
a project.

So, focus on bringing the future now to web dev in a coherent fashion.
Smooth over rough patches via native/global shims, and have namespaced
code when there is no spec alternative, but not under a top level
"dojo" or "dijit", but just under specific project's names, and
leverage the distributed github+anonymous modules future we can now
live in.

Bonus points for repos that create test suites for well-documented
APIs and saying that anything that provides an implementation that
meets that API and passes those tests can be used in place of that
implementation.

The difference between this code effort and spec work/spec experiment
implementations is that the focus is on delivering code that people
can use in sites today to get their work done.

I could see groups like SitePen and IBM creating "Enterprise Extended
Support" (ESR in Firefox release parlance) releases or recommendations
on pieces developed by dojo foundation projects but also other
license-friendly popular libraries, like jQuery. Perhaps those groups
provide snapshots of release versions, for larger corporations that
want someone to make informed decisions on their behalf.

Ideally there is enough bandwidth that developers working on the Dojo
Toolkit could also spend time in this other world, can create smaller
projects that interoperate even with non-Foundation-backed code.

The world of web dev is more advanced than when the Dojo Toolkit
started. There are some better underpinnings now, and more active spec
development/in-browser implementation experiments, with more
distributed code sharing and richer choices for tools in areas like
testing.

It would be good to see the Dojo Foundation open source principles and
licensing philosophy spread, and encourage smaller focused projects
that get pushes from Foundation members to work together at the edges.

James


More information about the dojo-contributors mailing list