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

3 comments:

diljimp said...

In addition to the language problem, one thing that hinders mobile developers opting to mobile optimized web apps is the lack of support for web apps when accessing certain device features. For example, a web app cannot access the camera in an iOS device. I think these restrictions are there because of security.
Apparently this is more of a fundamental problem than an adaptation issue. As one Google developer said in IO conference, "If you want the sophistication of latest features of a mobile device you need to talk to the device in its native language. Standardizations like web takes time and by that time you have lost the excitement of the feature". In my view this ressembles human language use where not everything expressed in a native language is expressible in the common international language.

creed - Uchitha said...

It all comes down to with whom your mobile app want to do business with? Are you comfortable sitting in one platform (iOS) or you want to cut across all major platforms. If the costs of maintaining the same native app across different platforms out-weights the loss of power with adapting a web based application, that's the tipping point. In any case it's a worthwhile exercise to enrich the web based APIs. I also think javascript could be a good language to make a "Common web API across different platforms". Or may be what we want is a web based OS API not a web app API. Read this

spassurance said...

Now a days so many technologies are available hat makes web development quite simple but the thing is that at some point all you will need to do is place some wiring to your mind from you pc system and think about a new program and it will be all done.

Web Application Development