Monday, November 14, 2011

Future of Web Application Development - A journey to the ‘Dart’ side.


Finally it looks like all the big players fundamentally agree on the importance of having a unified development model to cater for different distribution channels like Web, Phones, Pads etc..
The dropping of ‘Flash’ from mobile devices by Adobe, The direction Microsoft seem to be taking with Windows 8 and the buzz around HTML 5 in th community all points in 1 direction. They all indicate that ‘Web’ could be the platform of choice for different kind of applications running on different devices like computers, phones and pads.  What this also means is that the benchmark of a web application has to rise to the level of native applications in order to maintain the same user experience a Phone or Pad user currently have with native apps. So how prepared are we in terms of achieving this goal?

HTML5 looks like a big contender to address the initial goal of having a common development model which cuts across different consumer devices. It’s rich specification and the pragmatic approach of formulating the specification (Bottom-up approach) makes it even more promising.  Along this path, it’s only a matter of time when we meet ‘javascript’, the de-facto programming language in the web.

Javascript is renowned for its inconsistency across browsers (platforms). Coupled with its highly dynamic behaviour (thus lack of tooling) its plain to see that it will have its work cut out. However during the past few years javascript community has risen up to the challenge collectively by inventing amazing techniques, libraries, practices and great literature to build confidence among loyalists as well as some critics.

However Google intends to intensify the pressure on Javascript, by introducing ‘Dart’ a new programming language, whose primary objective is to make web developers create applications with the same quality as native apps but without the huge costs currently associated with such an effort.

Google is in a unique position to do something of this nature, due to its capability to reach many consumer points via its chrome browser (PC) and Android platform (Mobile). This distinct advantage will be a great platform from both a technical and marketing point of view. (Story could have been different if Windows Phone was a success)

The biggest challenge will always be how Google manages to convince other  browser vendors to support Dart. The bottom up approach is to use Chrome -Android to create large enough community of web apps & developers based on dart which would eventually convince browser vendors to start supporting it. The other way is to ‘sweet talk’ vendors to start supporting it straight away and see how the community embrace it. The current approach however is to compile Dart to javascript. Here again Google is at an advantage due to its previous experience with GWT.

From a more technical point of view, Dart interested me due to following;

1. Better tooling than Javascript
2. Interesting principals like optional types and isolates.
3. A simplified DOM

It will definitely be useful for a web developer to get their hands dirty with Dart soon. Following are some of the best resources I found.

Dart Official Web Page - http://www.dartlang.org/ (Check out the Tech Spec)

Dart Online IDE - http://try.dartlang.org/
Dart Eclipse based Editor - http://www.dartexperience.com/en/2011/11/03/dart-editor-windows/

Dart Interview - http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Gilad-Bracha-Dart-Newspeak-and-More

Brendan Eich on Javascript Future (And Dart)
http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Brendan-Eich-JavaScript-Today-and-Tomorrow
Post a Comment