Dart, le remplaçant du JavaScript made in Google

Qu’est-ce que c’est, Dart ?

Dart est le langage orienté Objet actuellement en preview release développé par Google dans le but de supplanter le JavaScript qui, au goût de Google, n’est pas assez rapide et souffre de son âge.

Il sera donc destiné au développement d’applications web rapides et puissantes, avec un code flexible, un langage familier (ça ressemble à un mix de PHP et de JavaScript) et qui fonctionneront de la même façon à travers tous les navigateurs modernes.

Pourtant les Frameworks JavaScript font sans cesses des optimisations dans le but d’améliorer leur vitesse de chargement qui n’est pas si exécrable :

Comment fonctionne Dart ?

Vous avez à votre disposition trois possibilités pour utiliser le Dart sur vos serveurs.
[list-ul type= »plus »][li-row]Vous pouvez soit traduire le code Dart en JavaScript puissant et optimisé à l’aide d’un compilateur. Dans ce cas il ne sera compatible qu’avec les navigateurs récents. Pour l’instant les navigateurs compatibles sont les versions Firefox au-delà de la version 4, Safari 5+ et Chrome. Dart étant encore en version preview release comme je l’ai dit précédemment, peux de navigateurs sont compatibles mais des efforts seront fait dans ce sens pour la version RC. (release candidate)[/li-row][li-row]Vous pouvez aussi exécuter Dart directement à partir du serveur, dans une machine virtuelle, un JavaScript server-side en quelque sorte. (cf les instructions ci-dessous pour savoir comment l’installer)[/li-row][li-row]Finalement, vous pouvez aussi utiliser Dartboard qui écrire, modifier et exécuter de petites applications en Dart à partir de votre navigateur[/li-row][/list-ul]

Quels sont les objectifs de Google en développant le Dart ?

Sur le site dédié au Dart (dartlang.org), Google a mis en avant 5 points précis sur les raisons qui l’on poussé à prendre cette position face au JavaScript :
[list-ul type= »plus »][li-row]Créer un langage de développement pour le web structuré et flexible[/li-row][li-row]Rendre le Dart familier aux développeurs et facile à prendre en main[/li-row][li-row]Google a développé Dart de façon à ce que toutes les applications soient très performantes et très rapides à charger[/li-row][li-row]Rendre Dart approprié pour l’ensemble des ordinateurs portables et de bureau, smartphones, tablettes et serveurs[/li-row][li-row]Il va aussi mettre à disposition tous les outils capables de créer du code Dart qui s’exécute rapidement sur tous les navigateurs modernes récents[/li-row][/list-ul]

Comment installer Dart sur son serveur ?

Pour les serveurs Mac, il faut installer Xcode 3.2 et depot_tools en suivant les instructions ici : http://code.google.com/p/chromium/wiki/MacBuildInstructions

Concernant les serveurs Windows, le développement ayant tout juste débuté pour porter Dart sur ces serveurs, pour l’instant il faut juste avoir un Visual Studio opérationnel et les depot_tools d’installé en suivant les instructions ici : http://www.chromium.org/developers/how-tos/build-instructions-windows

Pour les distribs Linux, il faut quelques prérequis que vous trouverez ici : http://code.google.com/p/chromium/wiki/LinuxBuildInstructionsPrerequisites

Puis, pour installer les librairies, faites

$ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh
$ source install-build-deps.sh

Et pour installer les outils

$ cd <dossier ou mettre les depot_tools>
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
$ export PATH=$PATH:`pwd`//depot_tools

A quoi ressemble Dart ?

Voici un exemple de code Dart inclue directement dans une page HTML, vous noterez l’apparition du type MIME Dart :

<html>
	<body>
    <script type="application/dart">
      main() {
        Element element = document.getElementById('message');
        element.innerHTML = 'Hello from Dart';
      }
    </script>
    <div id="message"></div>
	</body>
</html>

On peut aussi inclure des fichiers .dart dans les pages HTML. Voici un exemple de fichier Dart un peu plus complexe :

class SliderSample  {
	SliderMenu sliderMenu;
	final List<String> menuItems;

	SliderSample() : menuItems = const["Apple", "Banana", "Cherry", "Durian"] {}

	void ready() {
	    document.query("#status").innerHTML = "Slider Menu Sample App";
	    sliderMenu = new SliderMenu(menuItems, (selectedText) {
	      document.query("#message").innerHTML = "Selected '${selectedText}'";
	    });
	    document.query("#menu").nodes.add(sliderMenu.node);

	    document.query('#next').on.click.add((e) {
	      sliderMenu.selectNext(true);
	    });

	    document.query('#prev').on.click.add((e) {
	      sliderMenu.selectPrevious(true);
	    });

	    sliderMenu.enterDocument();
	}

  	static void main() {
    	Dom.ready( () { new SliderSample().ready();} );
  	}
}

Autant dire que c’est pratiquement du JavaScript, on ne sera pas trop dépaysé au final.

Pour conclure, ce langage a l’air prometteur mais je pense qu’il faut attendre quelques années afin que Dart devient plus mature et que l’implémentation sur les serveurs devienne plus facile.

Htaccess : Cache, compression GZip, Minify et plus
jQuery Mobile 1.0 RC2 : changements et optimisations

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *