À retenir
- C'est une traduction de « source à source » (entre deux langages de haut niveau).
- Cela permet d'utiliser les dernières nouveautés technologiques tout en restant compatible.
- Le code produit reste généralement lisible par un humain, contrairement à la compilation classique.
Transpiler consiste à traduire un code informatique écrit dans un langage vers un autre langage de niveau équivalent. C'est un peu comme traduire un roman du français vers l'anglais : on change la forme pour qu'il soit compris par un autre lecteur, mais le fond et la structure restent les mêmes.
Étymologie
Le mot est un mot-valise né de la fusion entre « transformer » (ou l'anglais translate) et « compiler ». Il s'est imposé avec l'essor des outils web permettant de convertir des langages modernes vers des standards plus anciens.
Exemples d'usage
- Transformer du TypeScript en JavaScript pour qu'il soit exécutable par un navigateur web.
- Convertir du Sass ou Less en CSS classique pour la mise en forme de pages internet.
- Utiliser Babel pour traduire du JavaScript très récent en une version plus ancienne compatible avec les vieux navigateurs.
Cas d'usage
On utilise la transpilation principalement en développement web pour bénéficier de syntaxes simplifiées ou de fonctionnalités de sécurité (comme le typage) sans perdre la compatibilité avec les outils standards du marché.
Bonnes pratiques
Il est crucial d'utiliser des source maps (fichiers de correspondance) lors de la transpilation. Cela permet au développeur de voir son code original lors du débogage plutôt que le code transformé, souvent moins lisible. Il ne faut jamais modifier manuellement le fichier généré, car il sera écrasé à la prochaine transformation.
Synonymes
Conseil
Si vous débutez, considérez le transpiler comme un traducteur automatique qui vous permet d'écrire du code avec un confort moderne tout en s'assurant que tout le monde (les vieux navigateurs par exemple) puisse le comprendre.
Questions fréquentes
Quelle est la différence entre compiler et transpiler ?
La compilation transforme un code source en un langage de bas niveau (binaire ou byte-code pour la machine), tandis que la transpilation le transforme en un autre langage de haut niveau (lisible par un humain).
Est-ce que la transpilation ralentit mon application ?
Non, car elle a lieu durant l'étape de développement. Le navigateur ou le serveur ne reçoit que le code final traduit, qui est optimisé pour être exécuté rapidement.