Projet alchemy : doper Flash au C et C++
lun, 01/12/2008 - 17:11
En direct de Milan. Un projet un peu surprise d'Adobe : Alchemy. Projet de recherche visant à convertir les codes C et C++ en ActionScript 3, plus connu sous le nom FlaCC. Basé sur le compilateur LLVM et incluant une couche partielle émulée de Posix. On y trouve aussi le portage de BSC C standard library et de GNU ISO C++ librairie. Il supporte partiellement autoconf. Le but est donc de réutiliser ces codes dans une application flash. Il se veut multi plate forme. Pour les cas d'utilisation, Adobe en voit plusieurs comme la logique métier, le transcodage audio vidéo ou encore les fonctions cryptographiques. Les performances sont un des atouts du projet. Les tests internes montrent qu'un code C ou C++ repris est jusqu'au 25 fois plus rapide qu'ActionScript 3, tout en ayant un accès mémoire plus performant et les outils LLVM sont, selon l'éditeur, plus agressifs au niveau optimisation. Bref, le bonheur ! Et pourquoi réécrire un code existant ?
La sécurité est aussi un des critères intéressants du projet. Le code tourne dans la sandbox Air et Flex. D'autre part, le code repris ne fait pas ce qu'ActionScript 3 ne peut pas faire. Mais attention, il y aussi des limites. Il n'y a pas de Win32, ce n'est pas un ensemble d'API, on n'échappe à la sécurité issue de la sandbox. Il ne génère pas un code ActionScript 3 comme un développeur peut écrire. Enfin, il ne génère un code optimisé en taille.
On dispose d'une API bridge pour faire le lien entre le code C et ActionScript 3, notamment pour manipuler les valeurs et les objets. Il s'agit aussi via l'api de pouvoir faire une correspondance entre les fonctions C et les fonctions ActionScript. Cerise sur le gâteau, avec le tool Gluegen, on on peut faire une description de binding C – ActionScript dans une syntaxe ActionScript... Bref, Gluegen sert à créer une glue entre les différents langages. Et en plus, pour utiliser Alchemy on peut utiliser Flex Builder. Pour le debug, c'est encore expérimental, l'intégration avec Eclipse étant en cours. On dispose des packages d'installation pour Ubuntu, Mac et Windows.
Voilà un projet qui plaira à de nombreux développeurs et qui permet d'étendre les applications Flash notamment dans un contexte d'entreprise. Reste à éprouver le projet avant d'espérer une mise en production.