jueves, 29 de octubre de 2015

TypeScript, lo mejor de dos mundos

Siempre me gustaron los tipos, los conceptos de la POO (clases, herencia, etc) por lo que JavaScript siempre me hizo ruido.

Por supuesto, como herramienta poderosa y popularizada que es, la usé, la uso y la seguiré usando, pero nunca me sentí tan cómodo como utilizando un lenguaje más estructurado.

Entonces me topé con TypeScript. Un lenguaje de código abierto que es un superconjunto de JavaScript (casi cualquier código JavaScript puede usarse como código TypeScript) que tiene la opción de usar nociones como tipos, clases, herencias, interfaces, etc. y que cuando compila genera código JavaScript.

clip_image001

http://aaronpowell.github.io/talks/typescript/img/not-sure-if-typescript.jpg

No es el primer intento de hacer un lenguaje con esas nociones que compile a JavaScript, pero si es uno de los pocos que lo hace ampliando el propio JavaScript, lo cual nos permite incluso usar las librerías ya desarrolladas para JavaScript (JQuery, Backbone, Knockout, etc.) y con un fuerte impulso desde su creador (MIcrosoft) y desde otras empresas (por ejemplo, fue adoptado para hacer Angular 2). También está intengrando con cada build cada vez más conceptos de ECMAScript 6. A su vez, fue creado por Anders Hejlsberg (uno de los creadores de C#, padre de Turbo Pascal y Diseñador en Jefe de Delphi) lo cual es para mí una garantía de buen lenguaje.

Al estar construido sobre JavaSccript, la curva de aprendizaje es realmente suave para cualquier persona que ya conozca JavaScript, pudiendo conseguir grandes resultados desde el primer momento sin demasiado esfuerzo.

Con TypeScript, podemos optar en todo momento, y en cada caso en particular, por usar los conceptos ya citados y así lograr un código más fácil de mantener y escalar. Pero no estamos obligados. De esta manera, podemos elegir usar una variable tipada en una línea, y en la línea siguiente usar una variable sin tipo, para logra la flexibilidad que eso nos da mientras el chequeo de tipos nos proporciona contexto en por ejemplo que se espera en los parámetros de una función a la vez que nos facilita el uso de herramientas, inferencia de tipos, y demás beneficios de los lenguajes tipados.

Abierto e Interoperable

Dado que TypeScript se compila a JavaScript, el código final se puede ejecutar en cualquier browser, en cualquier máquina y en cualquier sistema operativo. Si soporta JavaScript, entonces podrá ejecutar el resultado de nuestro trabajo realizado en TypeScript. Esto nos ofrece una gama de posibilidades enorme, por ser JavaScript un estándar ya aceptado por todos. Es más, se pueden usar los sistemas existentes de construcción, chequeos de links y cualquier otro sistema hecho para operar sobre código JavaScript, lo cual reduce posibles costos de migración en caso de empezar a usar TypeScript si ya teníamos una infraestructura armada para JavaScript.

TypeScript es abierto. El lenguaje TypeScript está disponible a través de la Open Web Foundation´s Final Specification Agreement. La implementación del compilador hecha por Microsoft está subida a GitHub ( https://github.com/Microsoft/TypeScript ) bajo la licencia Apache 2.0. Allí también se pueden encontrar instrucciones de instalación, uso y un roadmap de los próximos pasos que se quieren hacer sobre el lenguaje.


Más información:

http://blogs.msdn.com/b/typescript/

http://www.typescriptlang.org/

http://blogs.msdn.com/b/somasegar/archive/2012/10/01/typescript-javascript-development-at-application-scale.aspx

http://programandonet.com/web/primeros-pasos-con-typescript

https://github.com/Microsoft/TypeScript


Autor:

Fernando Berriel

Software Developer .Net