Google a réactivé le site try.dartlang.org qui permet à tout un chacun d'essayer Dart sans avoir à télécharger et installer le SDK. Contrairement à son prédécesseur, la nouvelle version compile du code Dart en JavaScript dans le navigateur, et par conséquent, fonctionne hors-ligne. Il supporte aussi la bibliothèque dart:html permettant la manipulation du DOM HTML. Cependant, son implémentation est probablement l'aspect le plus impressionnant de try.dartlang.org.
Peter von der Ahé a annoncé la release sur Google+ :
Nous avons réactivé try.dartlang.org. Comparée à l'ancienne version, la nouvelle offre une compilation dans le navigateur, le support de dart:html et fonctionne hors-ligne. Si vous avez un appareil fonctionnant sous iOS, vous pouvez installer Try Dart! sur votre écran d'accueil.
Alors qu'il y a des terrains de jeux similaires pour la plupart des langages, -à l'instar de try ruby ou repl.it qui offre un environnement REPL (Read Eval Print Loops) pour de nombreux langages tels que Python, JavaScript, Lua et beaucoup d'autres- la plupart de ces sites envoient le code saisi par l'utilisateur à un serveur, qui l'exécute et renvoi le résultat au client. Try.dartlang.org est différent puisque qu'il compile et exécute le code dans le navigateur.
Mais comment cela fonctionne-t-il ? Comment l'équipe Dart a-t-elle fait pour avoir son compilateur Dart vers JavaScript (appelé dart2js) dans un navigateur ? En regardant le code présent dans le repository du projet try.dartlang.org, le principe est révélé.
Le compilateur dart2js -lui-même écrit en Dart- est habituellement exécuté en utilisant la machine virtuelle Dart inclue dans le SDK. Cependant, pour try.dartlang.org, l'équipe Dart a dû compiler dart2js en JavaScript à l'aide de lui-même, produisant un fichier de 457Ko. Cette version JavaScript est chargée dans le navigateur et est appelée chaque fois que le code Dart dans l'éditeur change. Le code JavaScript résultant est ensuite évalué et affiché.
Bien qu'utiliser dart2js dans un navigateur ne soit pas un exemple typique d'applications web que l'on développe habituellement en utilisant Dart, bootstrapper le compilateur dart2js de cette manière est un exploit technique impressionnant.
try.dartlang.org dispose de nombreux exemples de code, pouvant être exécutés et modifiés simplement pour mieux comprendre comment fonctionne le langage. Les exemples vont du simple Hello World au plus complexe benchmark Delta Blue.