Hack, le nouveau langage de programmation de Facebook

Dans son blogue d’ingénierie, Facebook vient présenter un nouveau langage de programmation, Hack, qu’elle offre comme logiciel libre.

Techniquement, le web est souvent un retour de plusieurs décennies en arrière où l’on oublie toutes les leçons apprises en informatique.

On utilise des langages qui permettent de prototyper très rapidement, dynamiquement, mais qui ne sont nullement sûrs. On privilégie la productivité à l’exactitude, et à des bogues qui peuvent être difficiles à trouver et à corriger.

Ainsi, à l’instar de Microsoft qui offre typescript, une version de Javascript avec des types statiques, Facebook lance Hack, une version de PHP avec des types statiques.

851566_537609726356988_1715700065_n

Un exemple classique est une fonction PHP qui appelle une fonction avec un objet nul, alors qu’elle ne le devrait pas. Ce bogue ne sera pas découvert avant que le programme ne soit lancé, et que l’objet soit nul.

Si la principale innovation d’Hack est d’introduire des types statiques, qui coexistent avec les types dynamiques, le langage introduit aussi d’autres facilités modernes comme les génériques, les types synonymes, les types nuls et les contraintes sur les paramètres, les collections et les expressions lambda. Enfin Hack peut appliquer à l’exécution des règles sur les types de retour et les types des paramètres.

En plus d’offrir le langage au public, Facebook fournit gratuitement des outils de conversion, des tutoriels, et organisera prochainement une journée d’information.

Si le moteur d’exécution est compatible à 9x % avec PHP, il ne l’est pas totalement. C’est là que cette solution est à notre avis moins élégante que l’option choisie par Microsoft avec Typescript, qui est 100 % compatibles avec Javascript et produit en fait du code Javascript, donc directement utilisable par tous les serveurs et tous les navigateurs.