Cet article a pour but de vous présenter le langage de programmation HAXE. Quel est donc ce nouveau langage ? Quel sont ses fonctionnalités ?
Présentation
logo haxe
HaXe se présente comme un langage universel orienté web, c’est un langage multi-forme. Il est fortement orienté objet à la manière de Java/C++, qui peut-être typé ou dynamique et qui propose quelques bonnes idées comme les “Enum”, sorte de classes spécifiquement dédiées au polymorphisme.
Il permet de générer côté client des fichier Flash et du Javascript, et côté serveur un langage spécifique, Neko et tout récemment du PHP. Plusieurs IDE existe, plugin pour Eclipse, FlashDevelopp l’intègre en natif…
Sur le serveur, Neko peut générer du bytecode qui tournera au dessus d’un module Apache, ou être compilé. Côté client, il contient des librairies javascript qui permettent de faire de l’AJAX facilement. La première version stable est sortie en mai 2006.
Plusieurs projets basés sur le langage ont déjà vu le jour:
- ScreenweaverHX : un framework pour créer des applications de bureau en Flash
- HXDT, l’environnement de développement sous forme de plugin Eclipse.
- HaXeVidéo : serveur streaming développé en HaXe.
- PureMVC : framework de classes facilitant l’implémentation du design pattern MVC dans une application flash riche.
- hxasm : haXe Flash9 Assembler Library : qui permet de développer des swf directement en assembleur compatible flash9.
- Lib HaXe : tous les projets développé avec HaXe.
HaXe se présente comme le successeur du fameux compilateur AS2, à savoir MTASC (compilation ultra rapide).
Détails
HaXe (AS3, AS2) est un langage supportant le développement par design pattern (IOC, MVC..).
Il est possible de développer toutes les classes flash (avec l’éditeur FDT) puis de créer un swf contenant uniquement du code.
Puis avec swfmill (logiciel gratuit) ou l’IDE de flash, il faut créer un ou plusieurs swf contenant uniquement des graphismes.
Puis le swf principal (contenant uniquement le code) se charge d’assembler le tout. Il est donc possible d’obtenir des swf très légers et des applications flash réactives, se chargeant très vite pour l’utilisateur (lancement du chargement des graphismes au fur et à mesures des interfaces et mise en cache des données).
Le compilateur HaXe permet de générer des swf compatible toutes versions de flash (6 à 10). La compilation est très rapide.
Les swf générés par HaXe sont aussi performants que ceux généré par le sdk Flex ou l’IDE de Flash.
HaXe permet aussi d’effectuer du flash remoting, des jeux vidéos, du streaming, des RIA complexes et performantes, des applications desktop (comme AIR).
A partir du même langage de programmation (HaXe), il est possible de développer des applications web, pas seulement en flash.
La compilation HaXe permet de générer des fichiers javascript, neko et même php. C’est à dire qu’à partir du même langage de programmation, il est possible de développer dans plusieurs autres langages “sans devoir apprendre un autre langage de programmation!”
HaXe offre au développeurs la possibilité de créer des applications flash (swf), des sites php / javascript de manière totalement gratuite. Pas besoin d’acheter une licence coûteuse du logiciel Adobe Flash CS4.
Coté client
HaXe inclus de nouveaux types primaires comme Int, Float ou Dynamic, Dynamic permettant de rendre explicitement une variable dynamique. Cette fonctionnalité n’existe pas en AS3.
Les classes haXe se trouvent définies dans des packages à l’extérieur de la classe, le constructeur est private par défaut et se déclare avec le mot clé “new”. Les classes natives actionscript sont quant à elles contenuent dans l’objet “boot”. De plus, pour toute application développée avec HaXe, il est nécessaire d’utiliser les bilbiothèques HaXe pour la compilation vers Flash.
Comme avec MTASC, ce code est compilable en swf. Au delà de l’API Actionscript, haXe peut aussi être porté vers javascript et compiler des .js, pouvant être inclus dans vos pages web. HaXe peut aussi générer des fichiers PHP. A partir du même langage, il est possible de développer des applications web 2 complète sans avoir à apprendre / changer de langage de programmation continuellement.
Un des avantages supplémentaires : lors de la sortie de l’AS4, il n’y aura pas besoin d’apprendre un nouveau langage. Seulement de nouvelles fonctions à implémenter et à utiliser dans vos applications.
Fonctionnalités
Vous pouvez utiliser haXe en ciblant les plate-formes suivantes:
- Javascript : vous pouvez compiler un programme haXe en un unique fichier .js. Vous pouvez accéder aux APIs DOM de chaque navigateur avec un support d’auto-complétion, et toutes les dépendances sont résolues au moment de la compilation.
- Flash : vous pouvez compiler un programme haXe en un fichier .swf. haXe peut compiler pour les Flash Players 6 à 9, avec les les anciennes API Flash<8 ou les nouvelles API AS3/Flash9. haXe offre d’excellentes performances et des fonctionnalités de langage pour développer du contenu Flash.
- NekoVM : vous pouvez compiler un programme haXe en du Bytecode NekoVM. Celui-ci peut être utilisé pour de la programmation côté serveur telle que des pages web dynamiques (en utilisant mod_neko pour Apache) mais aussi pour des applications en ligne de commande ou de bureau.
- PHP : vous pouvez compiler un programme haXe en un fichier .php. Cela vous permet d’utiliser un langage fortement typé de haut-niveau tel que HaXe tout en gardant une compatibilité complète avec la plate-forme et les librairies de votre serveur déjà existant.
L’idée derrière haXe est de laisser le développeur choisir la meilleure plate-forme pour effectuer un travail donné. En général, ce n’est pas facile à faire parce que chaque nouvelle plate-forme vient avec son propre langage de programmation.
haXe vous fournit :
- Un langage standardisé avec de nombreuses fonctionnalités.
- Une bibliothèque standard (incluant Date, Xml, Math…) qui fonctionne de la même façon sur toutes les plate-formes.
- Des bibliothèques spécifiques à chaque plateforme : l’API complète pour une plate-forme donnée est accessible depuis haXe.
Apprentissage – Performances
La prise en main d’haxe est relativement aisée. Il y a une documentation complète sur le site officiel avec des exemples clairs.
La Mailing List (voir les archives) est très réactive pour le support. Je vous invite à vous inscrire pour en apprendre énormément sur le langage.
Ayant des connaissances poussées dans le développement AS2, utilisation des design pattern, du compilateur MTASC. L’apprentissage du langage HaXe s’est passée très facilement et très rapidement. Au bout 1 semaine ou 2, vous êtes capable de développer vos premières RIA Flash.
Quand aux performances, elles sont au rendez vous. Les swf compilés avec Flash sont aussi performants qeu ceux compilés en AS3 à partir de l’IDE d’Adobe.
Les experts HaXe s’accordent à dire que les swf HaXe sont parfois plus performants que les swf AS3. Personnellement, je reste sceptique, au final c’est le même code dans le swf (que l’origine vienne d’HaXe ou dAS3). En définitive, les performances restent au moins identiques.
Exemple Hello World
Des exemples “Hello World” sont disponible sur le site officiel :
- Pour commencer avec HaXe/Flash
- Pour commencer avec HaXe/JS
- Pour commencer avec HaXe/Neko
- Premiers pas avec HaXe / PHP
Les tutoriaux
Pour débuter avec ce nouveau langage, je vous conseille de lire et d’appliquer les tutoriaux suivants :
- Tutoriaux Multi Plate-formes
- Tutoriaux JavaScript
- Tutoriaux Flash
- Tutoriaux Neko
- Tutoriaux PHP
- haXe Remoting Tutorials
- Tutoriaux Avancés
Conclusion
Ici s’achève ce premier article consacré à HaXe. Régulièrement, je publierai des tutoriels accompagnés d’exemples simples sur HaXe.
Si vous souhaitez des tutoriels particuliers, n’hésitez pas à me le demander via les commentaires du blog.
Articles sur le même sujet :

Derniers Commentaires