Google is trying to revive the Dart programming language as a mainstream language for mobile and web development with its latest announcement. Dart 2 features a complete rewrite of the web platform with a strong focus on productivity, performance and scalability.  

“Dart 2 marks the rebirth of Dart as a mainstream programming language focused on enabling a fast development and great user experiences for mobile and web applications,” Kevin Moore, product manager for Google, wrote in a post. “We want to enable developers building client applications to be productive, with a language, framework and components that reduce boilerplate and let them concentrate on the business logic, along with tooling that identifies errors early, enables powerful debugging and delivers small, fast runtime code.”

Google created Dart with a focus on client-side development, and the ability to create high-quality, mission critical apps for mobile and the web.

According to Moore, Dart has seen great growth over the last year with a “ten-fold growth in external usage,” and an increase in pull requests on GitHub.

A lot of the work in Dart 2 went into cleaning up the language, adding more support for web and mobile frameworks, and providing more tools and components to support Dart outside of Google.

One of the features ensures developers “can’t get into a state where an expression evaluates to a value that doesn’t match the expression’s static type,” Moore wrote. This will enable developers to scale their codebase, work on large refactoring projects and better deploy code, Moore went on to explain.

For the language’s framework, Moore said Dart 2 provides faster incremental builds and smaller compiled JavaScript with the help of the language’s sound type system and new build system. In addition, the team worked on reducing the “time to interactivity” on web pages by improving the amount of code being processed during page load.

Version 2 also embraces a JavaScript development model with JavaScript compilers dartdevc and dart2js. Dartdevc is designed for faster incremental compilation while dart2js focuses on optimizing JavaScript for progressive web apps.

Other key features include an improved package manager, a static analyzer, and a linter that can be consumed from the command line or as a package.  

“Dart has become a general purpose language that is optimized for web and mobile development. We’ve been working on Dart 2 for several years, during which time it has touched every aspect of our ecosystem and required migrating millions of lines of code and hundreds of packages,” Moore wrote.