JavaScript evoluciona muy rápidamente. Los navegadores no tanto. Aún peor, cada navegador (y de hecho cada versión de cada navegador) es compatible con una versión diferente de JavaScript. La pesadilla de todo programador “front-end” que tiene que escribir su código JavaScript pensando en sí ese código será compatible o no (y si no, que código alternativo usar para mejorar la compatibilidad).

Por suerte, Babel es la solución a los problemas de compatibilidad en JavaScript. Gracias a Babel puedes usar la sintaxis JavaScript más innovadora sin perder por eso compatibilidad con los navegadores más populares.

Babel es un compilador JavaScript, o mejor dicho, un transpilador, que reescribe tu código JavaScript para que sea compatible con versiones anteriores de JavaScript. De hecho, puede que ya estés usando Babel aún sin saberlo. Babel está integrado ya en multitud de entornos de programación web como parte del “toolchain” que se ejecuta cada vez que creas una nueva versión del producto. Por ejemplo, si desarrollas en React con el comando create react app ya puedes decir que eres un usuario de Babel.

Esta traducción de la sintaxis JavaScript no se hace en tiempo de ejecución (aunque se podría llegar a hacer) sino que al configurar tu aplicación le dices a Babel con qué navegadores quieres que tu aplicación sea compatible. A partir de ahí, Babel busca el máximo común denominador para el conjunto de navegadores y lo tiene en cuenta al adaptar la sintaxis. Para una discusión más técnica acerca de como funciona Babel internamente, os recomiendo esta entrevista a Henry Zhu, la persona detrás de Babel.

Y, fijaros que hablo de “la persona”, en singular. Y es que a pesar del imparable crecimiento del software libre, la gran mayoría de proyectos los mantiene realmente un número muy reducido de contribuidores. Esto es cierto hasta para proyectos tan populares como Babel que hasta se está utilizando dentro del comité técnico para la estandarización de JavaScript para probar nuevas funcionalidades que pudieran pasar parte del estándar en el futuro.

Para empezar a familiarizaros con Babel, lo podéis probar en el editor online y ver qué tipos de transformaciones JavaScript Babel ejecuta dependiendo del código que vayáis escribiendo.

¡Si utilizáis Bable (o algún método alternativo) me encantaría conocer vuestras experiencias de primera mano con la herramienta!