At this point, only those living under a rock for the past couple of months are unaware that Google has taken on JavaScript with its latest project, the Dart programming language.

Dart, originally named Dash, was started to “fix” the problems of JavaScript’s “fundamental flaws that cannot be fixed merely by evolving the language” by meeting the following goals:

Create a structured yet flexible language for web programming.

Make Dart feel familiar and natural to programmers and thus easy to learn.

Ensure that all Dart language constructs allow high performance and fast application startup.

Make Dart appropriate for the full range of devices on the web—including phones, tablets, laptops, and servers.

Provide tools that make Dart run fast across all major modern browsers.

But will it be up to the task?

Is Dart doomed to fail?

The number one question surrounding Dart is why with so many other languages out there why is Google creating yet another one? After all, Dart is not something new, it is an alternative.

Most importantly, it is an alternative to one of the most popular programming languages on the web.

So while JavaScript may have some issues, it has a large following and people aren’t going to abandon it simply to learn the next thing from Google. They’ve been burned on that before (think GO, Buzz and Wave).

Yet while developers may be hesitant to jump on the Dart bandwagon until they are sure that Google won’t abandon this project shortly down the road, others see it as a futile effort until there is more browser support. After all, who wants to develop applications for the 20% of the market who uses Chrome? Because until Microsoft, Apple, Mozilla and the others decide to natively support Dart that 20% makes up a Dart developer’s audience.

Now the market share argument may meet some resistance considering Google can, and most likely will, release a plugin for these browsers that will run Dart. However users will have to first install them.

Of course Google has thought this through and created a compiler that will translate Dart code into… native JavaScript.

That’s right, the language Dart was created to replace will serve as it’s backup.

Now mind you that the following lines of code for a simple Hello World script:

// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. // Simple test program invoked with an option to eagerly // compile all code that is loaded in the isolate. // VMOptions=--compile_all class HelloDartTest { static testMain() { print("Hello, Darter!"); } } main() { HelloDartTest.testMain(); }

will turn into over 17,000 lines of JavaScript code when compiled. Even taking into consideration all the overhead, spacing and comments involved in this process what benefit do you gain from turning a few lines of code into thousands over writing the same few lines in JavaScript to begin with?

However the argument may be best summed up in a quote from Lars Bak, the project leader for Dart, “It’s (Dart) not going to replace JavaScript,” Bak said. “JavaScript is a cornerstone of the Web today, and it will continue to be for a long, long time.”

Should we give Dart a chance?

In Google’s defense, they claim from the onset of this project that:

The “clean break” option is extremely high risk–it will be a huge challenge to convince other browser vendors to rally around a new language–but is the only way to escape the historic problems with Javascript.

So they know that what they are getting into is not going to be without challenges.

Working in their favor, however, is the fact that Google has identified some real problems that JavaScript has and instead of building on top of what they see as a faulty foundation, they are starting from the ground up so issues and problems have a better chance of being addressed early on.

There are few companies who have the power to change the way we work, but Google is definitely one of them. And since they are going into this knowing that it will take years for Dart to really take hold in the developer community this project has a good chance at success, especially if it lives up to the lofty goals set for it.