À retenir
- Traduit un langage vers un autre sans perdre en lisibilité humaine.
- Permet d'utiliser les technologies les plus récentes tout en restant compatible.
- Se distingue de la compilation qui, elle, vise souvent un langage de bas niveau (binaire).
La transpilation est le processus de traduction d'un code source écrit dans un langage de programmation vers un autre langage de niveau équivalent. On peut comparer cela à la traduction d'un livre du français vers l'espagnol : on change la forme pour qu'il soit compris par un nouveau public, mais le texte reste à un niveau de lecture humain (contrairement à la compilation classique qui traduit vers un langage compréhensible uniquement par la machine).
Étymologie
Le terme est un mot-valise issu de la contraction entre « transformation » et « compilation » (ou de l'anglais transpilation). Il s'appuie sur le préfixe latin trans- signifiant « à travers » ou « au-delà », illustrant le passage d'un langage source à un langage cible de même nature.
Exemples d'usage
- Transformer du code TypeScript en JavaScript pour qu'il puisse être exécuté par un navigateur web.
- Convertir du Sass ou du Less en CSS standard pour la mise en forme de sites internet.
- Utiliser l'outil Babel pour transformer du JavaScript très moderne (ES6+) en une version plus ancienne compatible avec les vieux navigateurs.
Cas d'usage
Ce concept est massivement utilisé dans le développement web pour utiliser des fonctionnalités expérimentales ou récentes tout en garantissant que le site fonctionnera partout. On l'utilise aussi pour ajouter des fonctionnalités de sécurité ou de structure (comme le typage) à des langages qui n'en possèdent pas nativement.
Bonnes pratiques
Lorsqu'on utilise un transpileur, il est essentiel d'activer les source maps. Ce sont de petits fichiers qui font le lien entre votre code d'origine et le code généré, ce qui permet de corriger vos erreurs (débogage) directement sur votre propre code plutôt que sur le résultat transformé, souvent difficile à lire.
Synonymes
Conseil
Pour bien débuter, ne cherchez pas à configurer manuellement vos outils de transpilation complexes. Utilisez des outils modernes comme Vite ou Next.js qui intègrent et configurent automatiquement ces transformations pour vous.
Questions fréquentes
La transpilation ralentit-elle l'exécution du code ?
Non, car elle a lieu pendant la phase de création du logiciel. Le résultat final est du code standard optimisé.
Quelle est la différence entre compilateur et transpileur ?
Un compilateur transforme souvent le code vers un niveau inférieur (machine), tandis qu'un transpileur reste au même niveau d'abstraction (source à source).