News

Google Unveils Dart Programming Language

Google officially launched its new programming language, Dart, last week during the opening keynote presentation at the GoTo conference in Denmark. An early preview of the new structured Web programming language is described on the newly launched Dart Web site, which provides a technical overview, language specifications, library reference and code samples. The Web page and the spec document warn users that Dart is still a work in progress, to expect the language rules to change over time and to mail comments to Google engineer Gilad Brocha.

Brocha and fellow Google engineer Lars Bak unveiled Dart during the conference. Writing in the Google Code Blog, Bak, explained, "Dart targets a wide range of development scenarios: from a one-person project without much structure to a large-scale project needing formal types in the code to state programmer intent. To support this wide range of projects, Dart has optional types; this means you can start coding without types and add them later as needed. We believe Dart will be great for writing large Web applications."

In the Google specification document, the company describes the language as a class-based, single-inheritance, pure object-oriented programming language. It's optionally typed and supports reified generics and interfaces. Programs developed with Dart may be statically checked, and the static checker will report some violations of the type rules, but "such violations do not abort compilation or preclude execution," according to the spec doc.

Essentially, Dart is designed to compensate for the shortcomings of JavaScript, said Gartner analyst Ray Valdes in an earlier interview, implemented as a translation layer to support compatibility with older browsers. This translation-layer approach is a recent trend in programming language implementations -- think Scala, Clojure, jRuby, and Jython, all of which compile to Java or to Java byte codes. Another example is Google's GWT user interface library, in which developers write in Java that is then translated to JavaScript to be deployed to the browser.

The development of Dart was internally motivated, Valdes said. "There are developers at Google that have built complex JavaScript applications and have decided that some of the challenges in these large projects were due to design flaws in JavaScript," he said. "Some of them built tools and frameworks to work with JavaScript (GWT, Closure) but apparently they feel the need to go further and replace JavaScript entirely."

"Javascript has fundamental flaws that cannot be fixed merely by evolving the language," Google research scientist Mark S. Miller wrote in an internal memo last November, adding, "Building delightful applications on the Web today is far too difficult. The cyclone of innovation is increasingly moving off the Web onto iOS and other closed platforms."

However, there appears to be plenty of support within the company for JavaScript. Google software engineer Alex Russell, who serves as one of the company's representatives to TC39 (the JavaScript standards committee), expressed the pro-JavaScript position on his "Infrequently Noted" blog. "So what's the deal with Google and JavaScript? Simply stated, Google is absolutely committed to making JavaScript better, and we're pushing hard to make it happen," he wrote

Google created the Go programming language in 2009 for its own internal use. That language was developed as an alternative to existing system implementation languages (C++, Java, Python), which Google found either overly complex, slow to compile, or slow in production. Google hasn't evangelized Go, but is likely to pull out all the stops for Dart.

 

About the Author

John K. Waters is a freelance author and journalist based in Silicon Valley. His latest book is The Everything Guide to Social Media. Follow John on Twitter, read his blog on ADTmag.com, check out his author page on Amazon, or e-mail him at john@watersworks.com.


Featured

Most   Popular
Upcoming Events

AppTrends

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.