Why isn't SuperDevMode for GWT committed to trunk yet? A couple of weeks ago I mentioned an internal Google library for GWT, referred to as "clevername". For various reasons, the current SuperDevMode has some dependencies on internal Google stuff, and one of them is "clevername".

I've done some work the past 2 weeks (along with +Alan Leung) to get "clevername" closer to release, so that SuperDevMode can move closer to trunk.

So what is this mysterious library? The library is internally called Elemental, and we are keeping that name for the public. It was designed originally by +Joel Webber and +Kelly Norton as a clean break, a new, lightweight, "to the metal", "only html5" library. The library is nearly a 100% mapping to the HTML5 spec, because it is auto-generated from the specification IDLs. Programming with Elemental, is like programming with JS, if you know what the API is in JS, it's there in Elemental.

Additionally, there are a few other design points:
1) Separation of Interface and Implementation. Many of the APIs like HtmlFormElement are behind interfaces, with concrete JSO classes backing them. This permits the creation of mocked implementations for testing as well as server-side usage (if someone were enterprising enough to make something like htmlunit for Elemental's interfaces).

2) A new set of Collections classes, mutually incompatible with JRE Collections, that correspond to JS Map and Array. There are subtypes for primitives (ArrayOfInt, ArrayOfBoolean, etc).

3) A new JSON library designed to have zero overhead (no boxing/wrapping)

4) Implementations of #2 and #3 as non-JS shared code as well so the collections and json packages can work on the server side as well.

The goal of Elemental, if there is primary one, is to be transparent, to "melt away" when compiled, as much as possible, leaving code as efficient as you'd write by hand. If you want higher level libraries, you build them on top.

Elemental pushes bleeding edge compiler stuff. It relies on voodoo in some places for efficiency, and so, the last few weeks I've been fixing some compiler bugs, stuff like hierarchies of JSOs implementing generic-typed interfaces not working properly and such. Alan is also working on refreshing the auto-generated IDL APIs using the very very latest HTML5 specs right before we launch it. After Elemental lands, SuperDevMode will follow soon after.
Shared publiclyView activity