Angular 2 - TypeScript, ES6, ES5, Traceur, Babel y lo que nos viene

Aug 31, 2015 9:00:00 AM / by daniel.comas


Después de unas cuantas
versiones probando las diferentes alphas de Angular 2 os mostraremos los puntos
fuertes y también los principales obstáculos que tendremos en los siguientes
años en el desarrollo web.

 

Actualidad:


El Javascript en el que programamos
nuestras webs y el que los navegadores interpretan es JS ES5. La mayoría de
librerías que utilizamos en nuestros proyectos están escritos con este
estándar. Las decisiones que podamos tener son más en la elección de los
frameworks / estructuras / librerías a utilizar que en cuestionar el lenguaje.


Aun así empiezan a salir algunos
curiosos que en determinados entornos utilizan CoffeeScript o Microsoft
TypeScript. Estos lenguajes comienzan a aportar pequeñas funcionalidades que no
incorpora el JS ES5. Eso sí se acaba transformando el código de estos a ES5 con
la ayuda de un transpiler (Traceur o Babel).


 

El siguiente salto:


Es importante entender hacia dónde vamos
para después decidir cuál será la estrategia a seguir puesto que ahora se
añadirá una complejidad más. La elección del lenguaje.

 

ES6 se aprobó como estándar el pasado
Junio de 2015, y algunos navegadores ya lo interpretan parcialmente (ES6
Compatibility table). Eso sí, hay varias discusiones sobre cuando lo soportaran
a pleno rendimiento. Los más optimistas a finales de 2015 o principios de 2016.
Otros, a 2 años vista, es decir hasta 2017. El flujo que hemos seguido hasta
ahora, comenzamos a programar nuestras aplicaciones con el nuevo estándar
cuando está incorporado.



 




Hay que decir que las cosas han cambiado sustancialmente esta vez. No es nuevo
que empresas de referencia tecnológica lancen frameworks y utilidades para
hacer más fácil el día a día de los programadores. En el caso de Google con la
nueva versión de Angular, ha escogído el lenguaje TypeScript el qual le añade
funcionalidades extra a ES6 (Interfaces, decorators, …) en el que algunas se
están añadiendo para la aprobación del estándar ES7. Este movimiento para
algunos podría pasar por alto, pero tiene cierta repercusión. Ionic framework
hecho para crear apps para móviles híbridas también lo utilizará. Comentar que con este lenguaje se acaba
transformando el código a ES5 hasta que ES6 no esté totalmente soportado en los
navegadores. Eso sí, después tocará esperar a ES7 lo cual hace que TypeScript
sea el mejor guía de estandarización actual.



Llegados a este punto vamos a hacer un
resumen de que deberíamos tener en cuenta para proyectos nuevos:


ES5:

 


Todo seguirá funcionando después de las
actualizaciones. Seguiría utilizándolo en producción hasta que no haya una gran
adopción a ES6. Fijaros en librerías y frameworks y cuando éstos lo estén
utilizando haced el salto.


ES6 + Transpilers:

 

 

A día de hoy hacer código en producción
y que se pase a ES5 no me parece una gran idea. Pero deberemos estar atentos
porque da la sensación que tendremos que hacerlo durante un tiempo.


·         Contras:

o   Debugar en el
navegador código ES5 un código que hemos programado en ES6 es un poco tedioso.

o   Código duplicado. El
de programación y el que acaba expulsando el navegador. Si estáis en producción
evidentemente lo minificaréis.


·         Pros:

o   Lenguaje más limpio y estructurado.

o   Se acaba generando un javascript compatible para los navegadores actuales




ES7: 


Falta aprobar el estándar pero tendrá la mayoría de añadidos de TypeScript. Aunque la fecha de aprobación y la consiguiente adopción por los navegadores es a largo plazo.


 


TypeScript:

Éste tendrá una gran adopción por la comunidad web (Microsoft, Google, ...), o por lo menos en los proyectos grandes. Como hemos comentado contiene definición de interfaces, lo cual son básicos para hacer un proyecto escalable y de gran envergadura. En el caso de ser así y que tenga un gran nivel de acogída o de guía para lo estándar +1 para Microsoft.


 

Dicho esto, la gran parte estaréis de
acuerdo conmigo que como menos tiempo pase entre la transición de ES5 a ES6
mejor.


Topics: ES6, Ingens Developments, Programación, Traceur, TypeScript, AngularJS, Babel, ES5, JavaScript

daniel.comas

Written by daniel.comas

Lists by Topic

see all
Servicios gestionados

Categorías

Ver todas