Google Dart - alive and kicking?

Google associate Filip Hracek has recently moved to the Dart Development Team. A move which provoked not only rather amicably intended comments (for example that by doing so he will hopefully not be riding a dead horse), but also clearly negative reactions. Yet he provides good reasons which in his opinion speak for the success of Google’s web language.

Negative reactions to Hracek’s move are, however, not without reason. Dart had already been declared as good as dead several times already: in March 2015, Google informed that it will no longer focus on browser support of DartVM, but instead will open up wider application possibilities for the Dart-to-JavaScript compiler. The step described by Dart co-founder Kasper Lund as a renewal of the web strategy was interpreted by parts of the community as the beginning of the end of the project.

Above all, ranking data was used to give Dart a decisive setback compared to JavaScript and declare Google’s project as a failure. Others, like blog author Richard Eng, reference, aside from the as of yet unsolved weaknesses of client-side web development, the hopelessness of Dart in the face of many alternatives:

No matter what are Dart’s features, or how easy Dart makes web development, the fact is, there are a lot of other options out there and they all make the same claims. They all compile to JavaScript. They’re all easy to learn. Just about any one of them is easier than programming directly in JavaScript.

The release of the language at GitHub in June 2015 was for many a reason to bring up their doubts on the future of Dart: Some blamed the task of integrating DartVM in Chrome for this and questioned whether Dart could handle browser diversity in a large development community. And as was already the case in March, the question of the need for Dart was raised: the reasoning at the time was that while many developers had gotten used to JavaScript itself, others could favor the simpler migration path, available meanwhile with TypeScript or CoffeeScript.

See also: Why did the Angular team choose TypeScript over Dart?

So how did Hracek reach a positive conclusion regarding the future potential of Dart? He identifies 5 circumstances in particular.

Google places much emphasis on Dart

A company’s lack of trust in a project or product is never a good sign. In this regard at least, you do not need to worry about Dart, according to Hracek. He states that every day enormous volumes of Dart code are being written which are all key to the company’s success. The product team which is responsible for most of Google’s sales uses Dart. In other words: Even if only Google were to use Dart, the survival of the language is guaranteed in the long run.

Dart is actively maintained

Although with Version 1.13, Dart has reached a fairly stable stage, Hracek claims that development is proceeding at a notorious pace; currently, there 139 active repositories on GitHub, in December 2015 alone there were hundreds of commits:

Excluding merges, 32 authors have pushed 408 commits to master and 412 commits to all branches. On master, 828 files have changed and there have been 93,059 additions and 88,236 deletions.

Compared to similar projects, Dart is in good shape. Even if quantity does not necessarily mean quality, the large investments which flow into the development of the language show it.

Dart will soon run everywhere

Dart is currently targeting the web (through compilation in JavaScript, Dart code runs in any browser; command line tools, as well as event servers can be written in Dart), though in principle it was planned as an all-purpose programming language. So according to Hracek, Dart code could also soon be used for microprocessors (like Raspberry Pi) and microcontrollers (like Arduino). The same applies for native Android and iOS apps.

See also: Dart 1.9: Asynchronous programming ahoy

Dart is stable and steady

For those who are weary of constant changes in tools and libraries, Dart could be an uncommon haven of peace: indeed, the language is being constantly developed, however projects up to two years old still use the same standard library, the same language features, as well as the same package and dependency manager. In addition, a large part of the community follows the official style, use and design guides – legibility of the code is evidently top priority.

Dart “feels right”

Hracek does admit that Dart is not everybody’s cup of tea. However, there are a number of circumstances which ensure that work with Dart subjectively “feels right.” So especially if you are familiar with C#, C, ActionScript, Java and others, syntactically you will feel quite at home with Dart. Moreover, you wouldn’t expect any nasty surprises from a semantic point of view, the standard library is well thought out, standard features like Async/Await, String interpolation, etc. are a cinch to use and thanks to optional types, as well as optional generics, libraries, packages and transformers, the easy creation of robust code is possible.