Joel Spolsky posted an essay the other day drawing parallels between the optimization-in-assembly obsessed application developers of the late 80s and the optimization-of-download-and-compile-time obsessed web application developers of today. He proposes that someday soon someone (perhaps a “bratty Y combinator startup”) will come up with NewSDK, a rich SDK and language that does all sorts of fancy AJAXy things. Because they don’t have to convince anyone it’s a good idea, the brats will pay far more attention to functionality in NewSDK than they pay to performance, so when it first comes out the performance will be terrible. Existing AJAX apps (like everything at Google) will ignore NewSDK because of the performance problems, completely forgetting about Moore’s Law:

Â But then, while youâ€™re sitting on your googlechair in the googleplex sipping googleccinos and feeling smuggy smug smug smug, new versions of the browsers come out that support cached, compiled JavaScript. And suddenly NewSDK is really fast. And Paul Graham gives them another 6000 boxes of instant noodles to eat, so they stay in business another three years perfecting things.

Once improved JavaScript support in browsers, more bandwidth, and faster computers do for AJAX what better compilers, more RAM, and faster computers did for PC applications, NewSDK will suddenly take off. All NewSDK apps will interoperate nicely, have a rich user experience, and work better across browsers. The market share of AJAX applications that don’t use NewSDK (or at least interoperate with it) will start to fall and the brats will take over.

But Joel’s essay overlooks one important fact:Â Google is already developing NewSDK.Â The Google Web Toolkit is an SDK that allows a developer to build their entire application in Java and cross-compile it to browser-specific JavaScript for use on real clients.Â The toolkit gets better every month, and with version 1.4 they aren’t even calling it “beta” anymore. (Does that mean it’s no longer Web 2.0?) Short of a few highly suspicious meteor strikes, Google isn’t going to go away before GWT has a chance to graduate from “Wow, that’s neat” to “saved us a year.”

So far adoption of GWT has been fairly small. Three Rings is using it for Whirled. They use GWT to wrap the flash applet that does the heavy graphical lifting. They are able to call back and forth between the two so they appear to the user as one application. As the SDK improves over time, more people are bound to try it out, and it only takes one successful application for it to really take off.

All this kind of makes me wish I had a reason to write a major web app. As long as you survive, it’s good to be an early adopter of the Next Big SDK.