Thursday, October 13, 2011

Google DART

Google has finally announced DART. There's been leakage about DASH / DART for a while, and it looks like Google is really committed to it. It's a simplified language for web development, designed to scale well from widgets to large web applications.

Well, at least that's the theory. But the principals the Google team are trying to implement are exactly what the web needs. A language which runs server and client side is sorely in need and I think that's what people like Brendan Eich are missing:

"There’s a better-is-better bias among Googlers, but the Web is a brutal, shortest-path, Worse-is-Better evolving system."

As the creator of Javascript he certainly deserves some credit, but let's be realistic here. ECMAScript has been under discussion for years. The last standard was eventually simply trashed and we're working with a cut-down standard thrown out to address a few small issues. And the standards body is now telling us that the next version .. 'Harmony' is going to be any better? All this for a language originally designed by Netscape behind closed doors, and submitted for standardization post-facto. Worse-is-Better? Sounds like Brendan is saying 'mine is better'.

"What's wrong with playing hardball to advance the web, you say? As my blog tries to explain, the standards process requires good social relations and philosophical balance among the participating competitors"

This explanation coming from someone whom originally developed Javascript behind closed doors with a ninja release in Netscape Navigator 2.0, then took part in internecine standardization fighting with Microsoft resulting in different dialects of the same language for different browser manufacturers. The point here isn't to bash Brendan, the point is that no matter how rational Brendan's arguments are, his life's work is on the line. If someone comes out with something better .. well, Javascript could very well lose it's pre-eminent position on the web.

To me .. I'd say "Good". Javascript is one of those many languages where the syntax is so obscurely different to other languages that programmers must actually learn the language in order to use it ... winging it is incredibly difficult. Javascript is king of the hill by default, not by design nor because of it. It's never going to disappear from the web now, it's just too entrenched, but I'll happily welcome anything which comes along to displace it.

The web used to be a democratic place. Just about anybody could throw up a website, even a relatively clever one. The accessibility of the LAMP stack has made the web what it is today. The obtrusiveness of Javascript makes complex web applications costly to develop, thereby limiting the accessibility of the web.

"
Google's approach with Dart is thus pretty much all wrong and doomed to leave Dart in excellent yet non-standardized and non-interoperable implementation status"

Brendan doesn't seem to understand what DART represents. The corporate desktop was conquered by Visual Basic, the web server was conquered by PHP. What these two languages and development platforms have in common is the simplicity of design and accessibility of language and structure. If Google can manage to accomplish the same thing with DART, all of those developers who wouldn't consider attempting to write complex web applications in Javascript may very well use DART.

DART's future all hinges on Google making DART readily and easily accessible. Whether DART becomes a standard will rely upon it's depth of penetration in the marketplace. This will all depend upon whether Google can spoon-feed this language to the novice application developers of the 'internet as a platform' era. If the VB coders of old find their home on Google DART, well .. the sky is the limit.

Google has never proven itself a fundamentally strong builder nor proponent of developer tools, hence I wouldn't be surprised if the Googlers fall on their DART. It would be extremely wonderful for the internet if we could dispose of obscure languages and the unnecessary client / server division in 'modern' program logic.

No comments: