Google Dart – Ready or not, a new Language Arrives

Google Dart – Ready or not, a new Language Arrives

blog


When the king of search engines speaks, the tech world listens.  When it announces that it’s going to start speaking in a new language, though, the tech world gets a little concerned.

Such is the story of Google Dart.  Early information about the new programming language was leaked a month ago.  What raised concerns in the IT world, though, was an internal memo stating that Google had the long term goal of using Dart to replace Javascript.  To a programmer, that’s not too far removed from hearing that someone has the long-term goal of replacing English.

Google stepped back a bit and stated that there’s no reason that Javascript has to be headed to the trash bin.  In all fairness, what was posted was likely just optimism about its acceptance as opposed to antagonism against Javascript or anything else.  Given the programming world’s reaction, that’s a good thing.  Not only is Javascript largely considered to be thriving, but some feel that it is more relevant than ever.

The only constant is change

Nevertheless, Google has stated that there are problems with Javascript that are too ingrained in its design to be fixed from within.  Given its age (it was introduced when Bill Clinton was in his first term), it’s reasonable to suppose that a lot about it might not be keeping up with the times, especially given the recent explosion of portable viewing platforms.

Moreover, Google is now about as famous for its alternate services like Google Earth as it is for its search engine.  Even a modest increase in efficiency in the programming back-ends used by these services alone would have a multiplier effect that’s hard to even calculate.  For the rest of the web, Google is helping the transition by releasing a compiler that will translate Dart code into Javascript for any browser or application that is not yet capable of running it.

What are the goals of Dart?

On their technical specifications sheet, Google outlines the following objectives for the Dart programming language:

    Create a programming language that is structured, yet flexible.
    Give Dart a “familiar and natural” feel.  Some have already noted its similarity to Javascript.
    Make Dart appropriate for the full range of web-capable devices.  This might be one of the items that pushed the need for a new language over the tipping point.
    Create a language that launches quickly and efficiently.  This is more important than it seems: as standards and devices continue to splinter, efficiency in compatibility is going to become a high priority.
    Make sure there is a language that can work across all browsers.  This can be considered a sister idea to that of ensuring multiple device compatibility.  The number of browsers right now is higher than it has ever been, and shows no sign of stopping.  Look at Amazon’s inclusion of a new browser in the Kindle Fire, as an example.

Also listed in this document are the specific programming problems Dart attempts to address.  Paraphrased here, they are:

    Dart will attempt to address the problem whereby small programs swell into larger ones that cannot easily be broken back up into smaller components.
    Dart will attempt to address the conflict between static and dynamic languages (though this sheet doesn’t make clear what exactly their remedy is).
    Dart will attempt to address the problem whereby few languages right now are designed to work well both with client and server specifications.
    Dart will attempt to make it easier for programmers to take over each other’s work, by addressing the problem in which interactions with different parts of an application are put more into the code comments than in the code itself.
    Dart will attempt to reduce the cumbersome work associated with context switching.

OK, those seem like good ideas.  What does the audience have to say?

From our surveying, the biggest problem that the IT world has with this new programming language is its mere existence.  The fact that Google has done work to make sure it can be plugged in as many places as possible right from the start doesn’t seem to have mollified them.  This is one more language to learn, and who knows whether or not the time invested in it will be well spent.

The next biggest concern after that was with Google’s approach to its development.  Working with the greater community in developing standards is at this point considered both wise and honorable.  Google says that it is going to, but the initial development sketches and basic coding structures were authored in-house, outside the view of third-party eyes.  Google defended this position, stating that it was necessary to make sure that initial plans didn’t spin too far out into chaos.

A worrisome feelin

This doesn’t dull the feeling that some are getting that Google is becoming another Microsoft, creating “standards” that it single-handedly pushes onto the world.  Given that Google is about as big as Microsoft, it’s hard to see this worry as unwarranted.

Is it fair, though?  That’s a more difficult case to make.  As much as Google has done some things that have not sat well with the internet world, the general consensus is that it has never strayed too far from its “Don’t be evil” motto.  Recall recently, for example, their decision to pull out of China in protest over that government’s information control requirements.

Our verdict: Worth a look

The bottom line is that, like it or not, Google now maintains a position in which, if they determine that something needs to be changed on the web, and they put the effort into doing it, it’s a good bet that they’ll succeed.  Gmail replaced Hotmail, Google Maps replaced Mapquest, Chrome is replacing Mozilla, and Google+ is making a serious bid to replace the mighty Facebook.

Let’s also remember that no one has actually worked with this language yet.  The devil is in the details.  It may be that when all is said and done, Dart becomes as beloved as, say, Perl.  One thing is for certain, though, and that is that Google is putting a lot of energy into Dart’s development and release.  If they say that Dart has the potential to replace Javascript, it’s ill-advised to not consider that they might be right.