Qu'est ce que Haxe ?

20.08.2012 2691 3

Haxe


Historique

A l'origine, Flash est un logiciel d'animation vectorielle. La notion d'interactivité y est introduite sous formes d' « actions » en 1999 avec la version 4 du désormais célèbre produit de Macromedia. Mais c'est en 2001, avec la sortie de Flash 5, que l'on peut réellement parler de langage de programmation ActionScript 1.0. En 2003, Flash MX 2004 voit le jour et avec lui ActionScript 2.0, plus structuré que la version précédente.

A cette date, la plateforme Flash est très largement répondue grâce notamment à la simplicité d'installation du Flash Player. Malheureusement, seul l'environnement auteur de Macromedia, le Flash IDE, permet à cette époque de développer du contenu Flash, sous forme de fichier SWF. Le compilateur est très lent et laxiste afin de permettre aussi bien aux développeurs qu'aux designers de créer du contenu interactif.

C'est alors qu'apparait MTASC en 2004. C'est un compilateur ActionScript 2, libre, développé par Nicolas Cannasse au sein de la société bordelaise Motion-Twin, dont il est l'un des fondateurs et qui développe depuis 2001 des jeux et des sites de jeux Flash.

mtasc

MTASC est rapidement et largement répondu dans le monde professionnel, car très apprécié pour sa rapidité de compilation, ses fonctionnalités et sa distribution open source.

En 2005, Macromedia annonce la sortie de l'ActionScript 3. C'est un nouveau langage qui rompt la continuité avec les versions précédentes et qui s'exécute sur la nouvelle machine virtuelle, l'AVM2 qui est embarquée dans le nouveau Flash Player de version 9. Par ailleurs, Macromedia livre un compilateur libre au sein du kit de développement Flex. Le monde du Flash s'attend naturellement à ce que MTASC supporte cette nouvelle version du langage, mais Nicolas Cannasse a d'autres projets...

En effet, parallèlement à MTASC, Motion-Twin utilise Neko à la place de PHP, un langage coté serveur muni de sa machine virtuelle NekoVM qui est très robuste et a des performances allant jusqu'à 30 supérieures à celles du PHP.

Cette même année, le terme d'AJAX fait également son apparition dans le monde du web et enrichit considérablement le développement avec le langage JavaScript.

Cet état des lieux est le moment de dévoiler le nouveau projet : Haxe, un langage universel web.

Haxe

Haxe 1.0 voit le jour en mai 2006. La version 2.0 est disponible depuis juillet 2008.

Présentation

Tout comme MTASC, Haxe est un compilateur open source, en ligne de commande et disponible sur les principaux systèmes d'exploitation Windows, OSX et Linux.

L'originalité de Haxe réside dans les multiples plateformes qu'il supporte. En effet, il est nul besoin d'apprendre plusieurs langages pour maitriser les différentes technologies web les plus rependues : une seule syntaxe à apprendre et un seul compilateur utilisé qui cible NekoVM, PHP, JavaScript, le Flash Player, C++ et dernièrement C# et Java !

Haxe se présente comme le successeur de MTASC dans le sens où il supporte la plateforme Flash de version 8 ou inférieur mais également la version 9 et supérieur, qui est exécuté par la nouvelle machine virtuelle du Flash Player.

Une autre particularité de Haxe est qu'il est évolutif. Il va pouvoir s'adapter aux éventuels futurs changements des technologies qu'il supporte déjà mais de nouvelles plateformes pourront également se « greffer ». Ainsi le C# et le Java sont les dernières technologies supportées par Haxe.

Mais Haxe est également un langage de programmation à part entière.

C'est un langage de haut niveau, dont la syntaxe est proche de celle de l'ActionScript ou du JavaScript.

Le compilateur Haxe pouvant générer du code JavaScript, PHP, Flash, Neko, C++ ou encore C# et Java, son langage n'en demeure pas moins unique et indépendant de ces plateformes.

Haxe est structuré en différentes APIs. Il possède une API standard, commune à toutes les plateformes comme Date, Array, Math, XML etc. Par ailleurs, il intègre un système uniformisé de communication inter-plateformes : haxe remoting. Mais Haxe propose aussi des APIs spécifiques, selon la technologie ciblée. Ainsi, Sound, MovieClip, entre autres, sont disponibles pour Flash, Document, XMLHttpRequest pour JavaScript, Sys, FileSystem pour le PHP, Neko, C++, C# et Java.

Toutes ces APIs sont écrites en langage Haxe ce qui rend ce dernier indépendant de ses plateformes. En effet, il est essentiel de noter que quelque soit l'éventuelle évolution des langages comme le PHP ou le JavaScript, (évolution des concepts, des fonctionnalités ou de la syntaxe elle-même) elle n'aura aucune incidence sur Haxe puisque c'est un langage unique !

Haxe bénéficie également d'un autre avantage : étant donné sa récente élaboration, il intègre les meilleurs concepts des langages existants comme le C++, le Java, OCaml. Ainsi, les enumérateurs, les structures de types, la compilation conditionnelle sont, entre autres, disponibles au sein du langage Haxe.

Pourquoi adopter Haxe

Haxe possède de nombreux avantages qu'il est difficile de présenter en quelques lignes. En voici tout de même une liste non exhaustive :

  • La détection d'erreurs à la compilation permet d'écrire notamment des programmes JavaScript ou PHP et d'être alerté, avant l'exécution, d'éventuels erreurs de syntaxe. Elle permet également d'avoir la complétion dans votre environnement de développement préféré.
  • Les performances du code généré par le compilateur Haxe sont très souvent supérieures à celle du code natif pouvant être écrit par le développeur. Ceci est notamment dû à des optimisations faites par Haxe lors de la compilation, comme par exemple le inlining ou les génériques optimisés.
  • Un seul langage à apprendre pour maîtriser un large panel de technologies. Haxe facilite notamment le développement web où avec un seul langage, on peut développer la logique client et serveur, ce qui lui vaut d'ailleurs l'appellation de langage universel web.
  • Le compilateur est disponible sur les principaux systèmes d'exploitation : Windows, OSX et Linux.
  • Haxe est open source et grâce à une communauté qui ne cesse de croître, il bénéficie déjà de nombreuses bibliothèques d'outils.

Compte tenu des nombreuses plateformes supportées par Haxe, voyons rapidement quels sont les avantages de Haxe par rapport à l'AS3 pur, par exemple.

Haxe par rapport à l'AS3

  • Haxe permet d'accéder à l'intégralité de l'API du FlashPlayer, tout comme le permet la programmation AS3.
  • Il possède en complément des APIs supplémentaires comme l'API standard ou des packages d'outils.
  • Grâce à des concepts intéressants tirés des langages comme le C++ ou le Java, Haxe permet un confort d'écriture inégalable.
  • Le bytecode généré est plus optimisé que celui des compilateurs AS3 tout en restant parfaitement compatible avec le FlashPlayer.
  • Haxe permet de générer du contenu Flash, Flex, AIR et SWHX afin de créer des applications pour le navigateur mais aussi pour le bureau.
  • Le compilateur permet de générer du code source AS3 à partir du code source Haxe. Ce code généré peut être immédiatement compilé par un compilateur AS3 et distribué sans crainte de compatibilité.
  • Haxe a une syntaxe très proche de l'AS3 et permet une prise en main très facile et très rapide pour un développeur Flash.

Outils

Il existe un seul outil capable de compiler du code source Haxe qui est le compilateur Haxe.

C'est un programme exécutable en ligne de commande disponible sur Windows, OSX et Linux. Il peut être facilement intégré aux différents environnements de développement tels que FlashDevelop, Eclipse, TextMate etc.

Haxe est d'une extrême simplicité d'utilisation. En effet, afin de produire un programme, il suffit d'appeler le compilateur avec une liste de commandes et du code source Haxe correspondant.

Il embarque également des options avancées de compilation. Ainsi comme pour MTASC, le compilateur permet, par exemple d' « injecter » du bytecode dans une bibliothèque multimédia, créée à l'aide de l'IDE Flash.

Mais le compilateur possède aussi des options comme la génération de la description des types utilisées dans le code source ou la complétion intégrée.

La distribution de Haxe est également livrée avec un outil de gestion de dépôts de bibliothèques de tiers partie, à l'instar de la commande apt-get sous Linux. Ce programme en ligne de commande s'appelle haxelib.

Un autre outil, haxedoc, permet la génération de la documentation du code source. Son fonctionnement est proche de javadoc.

Il existe aussi des outils distribués sous forme de bibliothèque via les dépôts de haxelib. C'est notamment le cas de SWHX qui permet d'enrober des programmes Flash à l'aide d'un exécutable afin de produire des applications de bureau.

Un nouvel outil fait énormément de bruit ces derniers temps dans le monde du développement sur plateformes mobiles : NME

Commentaires

27.04.2015 à 09:55 Alain Mazy

Bonjour, je suis un ancien codeur AS3, j'ai cessé mes activités il y a un peu plus de deux ans pour raisons médicales. Aujourd’hui, j'essaye de reprendre là où je me suis arrêté. mes dernières recherches étaient dans stage 3D, le GPU et l'AGAL..

Je me demande où serait mon réel intérêt de recommencer tout mais sur un nouveau langage comme Haxe.. ce dont j'ai réelement besoin, c'est de vitesse de calcul, d'exécution.. comme pour calculer des FFT sur de l'audio.

J"utilise FlashDevelop4 avec le SDK Haxe pour mes premiers tests, je ne sais meme pas comment cibler autre chose que la plateforme Flash..

Si HaxeDoc génère une doc comme celle de Xaxe elle même, elle est bcp moins classe que celle de AS3

Bref, je creuse encore un peu, mais si je n'y trouve pas un réel intérêt (car comme Flash player est partout, autant rester en AS3) j'abandonnerai pour me concentrer sur les évolution d'Adobe.

27.04.2015 à 10:24 Michal

Bonjour,
Haxe génère un code plus optimisé pour le Flash Player. De plus, vous pouvez avec le même code cibler plusieurs plateformes ce qui vous permettrait, le temps voulu, de créer d'autre types d'applications surtout que le Flash Player est en train de mourir doucement...(regardez du côté de openFL ). Concentrez vous également sur les features du langage lui même et du compilateur.
En somme avec Haxe vous pourrez faire exactement la même chose qu'avec l'AS3 et encore +

27.04.2015 à 13:32 Alain

En effet, c'est qu'on dit, que le Flash Player va disparaître, je ne sais pas trop, vu qu'il est réapparu sur Apple OSX et IOS après avoir été écarté tout un temps.. on dit qu'il reste d'actu surtout pour les jeux.. Adobe continue à le faire évoluer surtout en 3D. Ce qui aurait été génial, c'était de faire l'inverse de Haxe, non pas de faire un cross plateforme, mais de faire un cross langage en entrée.. Que celui qui connaît un langage X ne doive pas réapprendre un nouveau langage..

Laisser un commentaire

http://
×