To admit the truth, I’ve been holding not to write on Dart for a while. After consuming lots of stuff online on this topic I couldn’t resist but to throw out my thoughts. So, what in the world is this new programming language called “Dart”? Why do we need another programming language with new syntax & semantics? What does dart do, others don’t?
OK, I’ll try to address these questions with my view points & analysis. Keep in mind, as Google put it, Dart’s language specification is still on its “early release” so, don’t be surprised if there is any significant change to Dart from now. There are lots of reviews(good & bad) on Dart available online. But, I’ll try to focus on only the points relevant to questions stated earlier.

Dart as described by its technical overview page – “It is a class-based programming language for creating structured web applications.”. There are two keywords to note here, class-based and structured web applications. You may know this already, Javascript is prototype-based, which is fundamentally different from class based languages like Java, Python, Ruby etc. What that means is, its very different in the way object orientedness/object hierarchies handled by the language. Whether you love or hate Javascript, you always get puzzled with its prototypic language nature and that adds so much to its peculiarity. Sometimes its a good thing and often times its not. So, a developer coming from a strong objected oriented programming language (like Java, Ruby, Python) background would always have a hard time working their way out using Javascript the way you normally do in class-based languages. The point is, Dart is trying to address that problem. You may ask now, why Dart? Isn’t GWT supposed to do all that already for you by masquerading JavaScript in the cover of Java? Yes, thats a very valid question. But, there is a difference. Trust me, I will try to address that in a short while.

Why do we need another language?

This is gonna be the hardest thing to sell. It almost feels like Google is so confident on their “moving the web forward” initiative and they kind of ready to loose some of their good old friends. This might sound political, but here is the truth. If you think of a website with some life on it (dynamism), it is most likely provided by JavaScript. Obviously, there are other things like Flash, Applets, Silverlight etc. But, they are much lesser in the grand scheme of “web” in general.
JavaScript has been a close friend to browsers all through its life. And suddenly, some new guy called “Dart” walking in and trying to share its life with some body else. It is really gonna be very tricky. Think of all the companies, tools, libraries, frameworks, resources, browsers who have already invested so much on JavaScript. It would either take them long time to welcome Dart or may be “not anytime” at all. So, only time can tell the truth.

What does Dart do & others dont?

This is probably a good selling point for Google. If you look at programming language or code developed for web application, they are either client side or server side. Even the code written for client side execution in PHP, Ruby, Python, Java etc. need to be translated to HTML/JavaScript/CSS to run in browsers. So, there is really not a very seamless way to write some common code and run both in client(Browser) and server side(Web Server). Yes, JavaScript can be made to run both in web server & browser. But, that is not a seamless process. Same thing would applies to Java also (like server side Java & Applets). Thats where, the concept of Dart VM kicks in. If you think of Dart VM existing in web servers (Apache, Nginx etc.) and in browsers (Chrome, Firefox etc.). The code you write can be deployed both client & server side. One of the major reason, I personally feel Google is pushing Dart forward is, they indirectly own majority of Web not just through Chrome browsers in Desktop but, also because of Chrome being in Android (Phone, Tablet, TV etc.). Obviously, Dart can very well be expanded to build native apps in Android OS and stuff.

If you compare Dart with GWT. I would say GWT can be considered as kind of a short-term goal for structured web application approach. Whereas, Dart can be called more of having a brand new programming language & approach itself for long term goal.

Will it win? Not sure :). Its gonna be very hard to speculate. Only thing I would say is, it will be yet another “expensive experiment” by Google in the world of sophisticated technology and innovation.

Update 11/11/11: Here is a posting from GWT blog on where GWT & Dart stand.

I am pleased to announce the release of DZone Reader android app. It’s a productivity app helping developers to keep up with the latest news & blogs from tech community. Some of the features include creating tabs for the topics of interest from Tagcloud and sharing links via Android right from the app. Here is the QR Code for easy installation from Android market.

Thoughts, feedback and comments?