Python es uno de los lenguajes más utilizados en la actualidad, tanto para scripting como para desarrollo web. En éste artículo te presentamos una herramienta que vas a amar si eres un desarrollador web y te gusta el minimalismo
Qué es ECMAScript
ECMAScript es el estándar que define cómo debe de ser el lenguaje Javascript. Sin entrar en datos históricos, que puedes consultar otras fuentes como la Wikipedia sobre ECMAScript, cabe decir que es la especificación que los fabricantes deben seguir al crear intérpretes para Javascript.
Como sabes, Javascript es interpretado y procesado por multitud de plataformas, entre las que se encuentran los navegadores web, así como NodeJS y otros ámbitos más específicos como el desarrollo de aplicaciones para Windows y otros sistemas operativos. Todos los responsables de cada una de esas tecnologías se encargan de interpretar el lenguaje tal como dice el estándar ECMAScript.
Cómo son las versiones del estándar de Javascript
A lo largo de la existencia de Javascript y desde que se le encargó a ECMA el trabajo de su estandarización, han aparecido diversas versiones de Javascript con cada vez mayores funcionalidades, estructuras de control, etc. Esas son las versiones del estándar y hoy de la que nos ocupamos es de ES6, la sexta versión.
ES5 estuvo con nosotros durante muchos años y a día de hoy es la versión de Javascript más extendida en todo tipo de plataformas. Cuando alguien dice que conoce o usa Javascript es común entender que lo que usa es ES5, el Javascript con mayor índice de compatibilidad. De ésto también se entiende que, cuando queremos escribir un código compatible con todos los navegadores o sistemas, lo normal es que ese código sea ES5.
Sin embargo, hoy muchos sistemas son capaces de entender ES6, la versión del estándar ECMAScript presentada en 2015. ES6 mejora varios aspectos del lenguaje y proporciona nuevas variantes a la programación, que nos aportan distintas ventajas.
El mundo de las versiones no se queda ahí y hoy ya existen borradores de lo que será ES7, que todavía nos traerá nuevas construcciones en el lenguaje, haciéndolo más productivo y sofisticado.
Transpiladores
Conscientes de los problemas de compatibilidad o soporte a ES6 en las distintas plataformas, un desarrollador poco informado podría pensar que:
Sea poco aconsejable usar hoy ES6, debido a la falta de compatibilidad.
Lo correcto sería esperar a que todos los navegadores se pongan al día para empezar a usar ES6 con todas las garantías.
Afortunadamente, ninguna de esas suposiciones se ajusta a la realidad. Primero porque si ES6 nos aporta diversas ventajas, lo aconsejable es usarlo ya. Luego porque es absurdo quedarse esperando a que todos los navegadores soporten Javascript en la versión ES6. Quizás nunca llegue ese momento de total compatibilidad o posiblemente para entonces hayan sacado nuevas versiones del lenguaje que también deberías usar.
Así que, para facilitar nuestra vida y poder comenzar a usar ES6 en cualquier proyecto, han surgido los transpiladores, una herramienta que ha venido a nuestro kit de desarrollo para quedarse.
Los transpiladores son programas capaces de traducir el código de un lenguaje para otro, o de una versión para otra. Por ejemplo, el código escrito en ES6, traducirlo a ES5. Dicho de otra manera, el código con posibles problemas de compatibilidad, hacerlo compatible con cualquier plataforma.
El transpilador es una herramienta que se usa durante la fase de desarrollo. En esa fase el programador escribe el código y el transpilador lo convierte en un proceso de "tradución/compilación = transpilación". El código transpilado, compatible, es el que realmente se distribuye o se despliega para llevar a producción. Por tanto, todo el trabajo de traducción del código se queda solo en la etapa de desarrollo y no supone una carga mayor para el sistema donde se va a ejecutar de cara al público.
Hoy tenemos transpiladores para traducir ES6 a ES5, pero también los hay para traducir de otros lenguajes a Javascript. Quizás hayas oído hablar de TypeScript, o de CoffeeScript o Flow. Son lenguajes que una vez transpilados se convierten en Javascript ES5, compatible con cualquier plataforma.