La société
Motion-Twin, éditrice de nombreux jeux en lignes ou mini-sites tels que les très connus
MiniVille,
La Brute ou
Hordes, a dévoilé hier la dernière version de son langage de programmation haXe, utilisé pour le développement de sites web. Il permet de créer efficacement et intelligemment des pages web dynamiques, et vient tout juste de sortir dans sa version 2.0, apportant le support de nombre de fonctionnalités intéressantes pour les développeurs webs. Parlons tout d’abord un peu plus précisément de Motion-Twin, la société à l’origine de ce langage, pour ensuite faire un tour d’horizon de haXe 2.0 et de ses nouveautés.
À l’origine de haXe : les jeux vidéos Motion-Twin
haXe est un projet qui a été lancé en octobre 2005 à l’initiative de Nicolas Canasse, un des employés de la société Motion-Twin, basée à Bordeaux, et spécialisée dans les jeux vidéos en ligne, dans le navigateur web du client. Ce genre de jeux vise un très grand public du fait de leur simplicité d’utilisation et de leur portabilité, c’est ce qui fait leur renommée aujourd’hui.
L’aventure Motion-Twin commence réellement en septembre 2002 avec le lancement sur la toile du site communautaire de jeu nommé
Frutiparc. C’est le premier vrai succès de la société, qui rassembla de nombreux joueurs.
Frutiparc était entièrement programmé en Flash. Les développeurs Motion-Twin ont visiblement essayé de trouver un langage plus général pour créer leurs sites webs, et c'est ainsi que haXe a vu le jour : c'est un langage moderne, qui intègre à la fois la programmation côté client et côté serveur, et qui reste compatible avec les technologies en place sur le net.
Le succès de l'approche de haXe s'est rapidement fait sentir, puisque depuis quelques années, tous les jeux Motion-Twin sont développés dans ce langage. On peut citer le très connu MiniVille : ce site a pour but de créer sa ville et de récolter les clics d’autres joueurs pour en augmenter la population.
Le succès a été tout simplement énorme, si bien que Motion-Twin lança peu de temps plus tard le site AntiVille, basé sur le même principe, mais proposant cette fois de détruire les MiniVille d’autres joueurs. D’après les statistiques données par Motion-Twin, plus de 200 millions de visualisations de pages ont été effectuées sur le site MiniVille.
Un autre succès plus récent est le maintenant très connu LaBrute. Ce jeu, basé comme MiniVille sur un système de liens à distribuer pour faire évoluer sa « Brute », prend le relais de MiniVille qui commence ces derniers temps à s’essouffler. Ce système de liens provoque d’ailleurs de nombreux floods sur différents forums (même sur le Site du Zéro !) de personnes voulant faire cliquer d’autres joueurs vers leur lien. La technologie haXe, libre, s'est aussi répandue sur le web : on peut citer par exemple l'éditeur de jeux flash Prizee, qui utilise exclusivement haXe pour ses dernières productions.
Motion-Twin est également connu pour un de ses développeurs principaux : Nicolas Canasse. Ce programmeur est l'auteur de nombreux outils libres permettant de programmer en Flash, technologie très prisée par Motion-Twin car adaptée aux jeux vidéos sur le net. En particulier, le compilateur
MTASC (Motion-Twin ActionScript Compiler), qui est la référence des compilateurs ActionScript2 libres, est un de ses projets. haXe, le successeur de ce compilateur ActionScript, a été lancé en octobre 2005 par ce même développeur, et devient de plus en plus utilisé (tout comme le fut MTASC). On peut relier le succès de MTASC et de haXe à la profonde connaissance des techniques liées aux langages de programmation (compilation, machines virtuelles), et notamment à l'utilisation du langage fonctionnel OCaml, particulièrement adapté à ce genre d'applications, qui a eu une grande influence sur le langage haXe.
Le langage de programmation haXe
Un développeur de sites webs comme ceux de Motion-Twin doit en général connaître au moins trois langages de programmation pour arriver à ses fins :
- PHP, nécessaire à la génération des pages webs côté serveur, et permettant ainsi la programmation de forums, et de toutes sortes de choses.
- Javascript, permettant de rendre plus dynamique le site en y rajoutant une dose de code s’exécutant au niveau du navigateur web. On l’utilise notamment pour de nombreux effets graphiques, ou pour ce que l’on appelle l’AJAX, permettant de recharger partiellement des pages webs.
- Flash, très utile pour tout ce qui est animation lourde, pour lequel on programme en langage ActionScript.

Le but de haXe est de fournir un langage unique permettant de générer au choix un de ces trois langages clés utilisés par Motion-Twin : le développeur écrit un programme haXe, qui est ensuite transformé en plusieurs parties dans les différents langages, et peut donc être directement mis en place sur un site web, en s'intégrant avec les technologies Web déjà existantes (PHP, Apache...). Un pari brillamment relevé grâce aux efforts de Nicolas Canasse, qui a créé ce langage à partir de zéro. En moins de trois ans, ce projet est devenu suffisamment mature pour être utilisé dans de nombreux jeux de la société, tel que Hordes, un RPG communautaire en ligne se jouant dans le navigateur web, et utilisant habilement un mélange des trois langages évoqués plus haut, tout en étant programmé uniquement avec haXe.
haXe est de plus un langage de programmation très moderne : orienté objet, et à la syntaxe proche de celle de l'
ECMAScript/Javascript, il met en oeuvre de nombreuses fonctionnalités avancées provenant des langages de programmation
fonctionnels, comme un typage statique fort, avec
inférence, ou les
types algébriques.
Il offre aussi d'excellentes performances : le Flash (version 9) produit par haXe est souvent plus rapide que ce que produit le compilateur officiel d'Adobe à partir d'un code ActionScript3 équivalent.
Le compilateur et les outils haXe sont entièrement libres, disponibles sous licence GPL. Cela contraste avec les outils Flash habituels, en particulier les programmes d'Adobe, qui peinent à apporter de l'ouverture à ses propres logiciels propriétaires. Cette caractéristique a permis à haXe de se constituer une communauté grandissante d'utilisateurs et de contributeurs, créant et partageant des bibliothèques et des applications dans de nombreux domaines (plugins pour éditeurs, moteur de modélisation physique, streaming ...).
En un mot, haXe est un langage de niche qui a tout pour réussir : il répond à un besoin de certains développeurs webs par un langage extrêmement poussé et ouvert. Cette combinaison de connaissances théoriques profondes et de considérations pragmatiques efficaces en fait un acteur très intéressant dans le monde de la programmation Web, qui n'a pas fini de nous surprendre.
Un petit exemple de code source écrit en haXe, qui permet de dessiner un carré dans une scène Flash :
Code : Autre1
2
3
4
5
6
7
8
9
10
11
| class Test {
static function main() {
var mc : flash.MovieClip = flash.Lib.current;
mc.beginFill(0xFF0000);
mc.moveTo(50,50);
mc.lineTo(100,50);
mc.lineTo(100,100);
mc.lineTo(50,100);
mc.endFill();
}
} |
La version 2.0 de ce langage apporte des tonnes de nouvelles choses intéressantes pour les développeurs d'applications web. Par exemple, avec haXe 1.x, il était tout simplement impossible de demander à haXe de générer du PHP en plus du Flash et du Javascript. Cette nouveauté très intéressante permet d'utiliser un langage de programmation unique aussi bien pour la programmation côté client que côté serveur. Elle ajoute également de nouvelles fonctionalités au langage même, avec par exemple la possibilité de spécifier des valeurs par défaut aux arguments facultatifs, et plein d'autre choses. On peut aussi noter l'apparition (ou plutot la restructuration) du module haxe.remoting permettant de faire communiquer des applications développées avec haXe entre elles, comme par exemple échanger des données entre Javascript et Flash très facilement.
Une liste complète des nouveautés de cette version 2.0 est disponible sur
le wiki de haXe. L'annonce de cette version a été faite sur
le blog dédié au langage haXe (lui même programmé avec haXe, d'ailleurs

), qui publie régulièrement des billets sur haXe et la communauté qui l'entoure.
Conclusion
haXe est un langage de développement web permettant avec la même syntaxe de programmer en PHP, en Flash ou en Javascript. Il est notamment utilisé par la société qui l'a conçu, Motion-Twin, pour réaliser des sites webs de jeu en ligne comme Hordes, MiniVille ou LaBrute. Sa syntaxe très claire lui permet d'être abordé sans difficultés, même malgré le manque de tutoriels le concernant. Je vous invite grandement à l'utiliser dans le cadre du développement de vos sites webs

.
Sources et liens externes
Bonne visite à tous sur le Site du Zéro

.
85 Participations
Connectez-vous !
Connectez-vous !
Revenir à la liste des news