vendredi 21 septembre 2012

Ceylon & Dart au Ch'ti JUG

Where is Bryan?

Ch'ti Java User Group

Mercredi 18 septembre 2012, l'équipe du Ch'it JUG nous à proposé une session "Langues Étrangères" avec une présentation de Dart et Ceylon, deux nouveaux langages émergents, orientés objet et résolument dédié au développement productif.

Une très bonne session, corrigeant mes préjugés sur Dart et confortant mon intérêt pour Ceylon, en voici une mini syntèse (ben oui, fallait êt' là :P)

Dart en première partie

La première partie fut dédiée à Dart et présentée par deux Dart knight que sont Guillaume Girou (@GirouGuillaume) et Nicolas François (@NicoFrancois).

Dart side of the moon

J'ai cru jusqu'à cette présentation que Dart était un langage dédié à fonctionner dans les futurs navigateur au même titre que le JavaScript aujourd'hui monnaie courante. Ce n'est qu'une partie de la vérité, la partie émergée de l'iceberg. Il s'agit de bien plus, d'une plateforme disposant d'une machine virtuelle pour faire fonctionner du code produit à destination du côté serveur. Un gestionnaire de paquet (PUB) est également présent pour gérer les modules ainsi que les dépendances.

Dart

Dart c'est pointu

Au niveau du langage lui même, c'est dans l'air du temps : simple et expressif afin d'écrire moins et de laisser transparaître l'intention de l'écrivain du développeur. On a beaucoup parler de sucre syntaxique, et l'emploi d'un nouvel operateur '..' est assez bluffant, permettant d'enchainer différents appels de méthodes à un même objet. Je ne suis pas sûr de l'intérêt de ce raccourci mais je trouve tout de même cela assez classe.

Dart, au coeur de la cible ?

Du point de vue opérationnel, on est en droit de se demander si c'est fait pour la vraie vie. En effet, aujourd'hui seul Dartium, la version de Chromium comportant la VM Dart, est capable à ce jour de supporter nativement ce langage. La VM ne dispose pas encore d'un portage sur architecture ARM la privant des SmartPhones actuels. Mais les équipes Google ne s'avouent pas vaincue pour autant en fournissant un traducteur Dart vers JavaScript afin de produire du code fonctionnant sur le parc actuel tout étant écrit de manière moderne. L'avenir de Dart est dans les mains de Google, fournisseur, entre autre, d'un navigateur, d'un OS mobile, d'un serveur d'application, joli groupe de fées autour du berceau n'est-il pas ?

Donne envie d'en savoir Dart-vantage

J'ai beaucoup apprécié le jeux du binôme abordant leur sujet sur le ton de l'humour, assurant une bonne humeur et maintenant l'audience alerte malgré l'heure tardive et après une dure journée de labeur. Pour en savoir plus sur Dart, son éditeur, sa VM, Dartium (la version de Chromium supportant nativement Dart), suivez le guide. Sans oublier le Google Groupe pour la version française.

et plus Ceylon, plus c'est bon!(©...ils se reconnaîtront :)

Puis vint le tour de Stéphane Épardau pour la présentation du langage à l'éléphant, non pas PHP, l'autre :P. Ceylon est un langage dont j'ai déjà entendu parlé il y a quelques mois et qui m'avait beaucoup enthousiasmé. C'est avant tout un hommage à Java car il est bâti sur les acquis de la JVM. C'est en même temps une rupture totale à l'image d'une fusée qui se sépare de son booster pour progresser toujours plus haut. La volonté affichée est de produire un langage moderne, expressif et surtout non ambigüe. Ce dernier point est rendu possible d'une part par sa conception restreignant la manière de faire un certain type de chose, et d'autre part en supportant un très grand nombre de fonctionnalité aujourd'hui très attendues dans notre bonne vieille JDK.

Ceylon

Fini les NullPointerException!

Aucun moyen de saisir une valeur nulle, il faudra pour cela forcer une variable à accepter la valeur nulle, un forçage qui contaminera de manière virale l'ensemble du code concerné, sauf si l'on test la nullité du contenu, auquel cas la variable deviendra une variable classique dans le scope de sûreté. C'est une chose faisable aujourd'hui au moyen de librairie tierce, (functional Java, Google Guava) mais avec une verbosité certaine.

Tout est objet, cette fois c'est vrai!

En effet, tout est objet, y compris les fonctions. C'est ainsi que naissent naturellement une fonctionnalité que j'attends avec la plus grand impatience: les closures, sorte de fonction un peu particulière, injectable en argument comme tout autre paramètre.

Le retour des types Union et Intersection

Un dernier pour la route: les types Unions, visiblement influencé par C, permet d'indiquer qu'une variable ou une méthode, peut produire différents type de résultat, certainement sans aucun lien d'héritage, et d'en maîtriser l'exhaustivité. L'exemple percutant montrer en séance et l'API JSON capable de lire un flux pour en faire un des quelque type prévu par la spécification: Object, Array, String, Float, etc. Comme avec la gestion des nuls, on testera le type de l'objet manipulé et il sera alors automatiquement transtypé sans avoir de type casting à écrire.

Allez, cette fois j'arrête

Ceylon est également une plateforme complète, disposant de son compilateur, de son gestionnaire de module, un genre de bundle OSGi hébergé par Herd, un genre de Nexus réalisé en Play!, d'une prise en charge dans Eclipse, ...

Bryan is in the kitchen!

Ce sont là deux belles présentations que nous avons eu, faites par des speakers évangélistes très sympa vers qui vont mes remerciements.

chtiJUG.setSponsor ( chtiJUG )

Cette soirée fu exceptionnellement offerte par le Ch'ti JUG «himself» et avec le soutien de l’IUT A de l’université de Lille 1, représenté par Jean Carle, qu'il convient de remercier également.

Aucun commentaire:

Enregistrer un commentaire