3P en la JSConf Uruguay 2016

martes, 19 de abril de 2016


Emoción. Esa es la sensación que nos invade mientras, en lo más profundo de nuestras mentes, presionamos el botón de rewind para revivir lo que fue nuestra experiencia en la JSConf Uruguay 2016. 3P estuvo presente en tierras orientales para formar parte de una de las mayores conferencias de JavaScript celebradas a nivel mundial y, como no podía ser de otra manera, ¡a continuación les contaremos qué tal estuvo!


Fueron dos días a pura intensidad. Dos días en los que fuimos huéspedes de una imponente, elegante y sofisticada construcción, como la es el Auditorio Antel. Dos días en los que incorporamos nuevos conocimientos, compartimos momentos gratos con gente como nosotros –apasionados de los unos y ceros– y, por supuesto, llenamos nuestros estómagos hasta donde el cinturón lo permitió.

Día uno

El responsable de la primera charla fue un compatriota, Alejandro Oviedo, quien realizó una interesante retrospectiva sobre la historia de JavaScript. Al mejor estilo DeLorean, nos trasladó al pasado, para recordarnos cómo eran las cosas 20 años atrás, y cómo en tiempos de Mocha (A.K.A. ECMAScript 1) uno podía toparse con cuestiones que hoy resultarían casi inconcebibles (¿cada vez que se disparaba un error de JavaScript se abría un pop-up? ¡No puede ser cierto!).

Luego, fue el turno de Ruth John, quien nos hizo dar cuenta de lo equivocados que estábamos con respecto al MIDI, brindándonos un pantallazo de lo que actualmente somos capaces de hacer con el hardware adecuado y ciertas APIs como la nueva Web MIDI API.

Comprendimos, entonces, que se trata de algo mucho más grande que un audio de baja calidad; es, en verdad, un protocolo de datos, con el que se pueden hacer cosas muy interesantes y divertidas. ¡Mención especial a las pegadizas animaciones y tracks con las que esta talentosa MIDI evangelist (como ella misma se autoproclama) nos deleitó durante su presentación!

"You don't need permission to be awesome".
David Neal, por su parte, supo cautivar nuestra atención con su charla sobre Electron, un poderoso framework que, básicamente, nos permite construir aplicaciones desktop empleando HTML, CSS y JavaScript. ¡Y lo mejor de todo, es que hablamos de aplicaciones ciento por ciento multiplataforma!

Tal fue nuestro interés por Electron, que al día siguiente participamos de un workshop, encabezado también por Neal, en el que pudimos dar nuestros primeros pasos con esta ambiciosa tecnología. Dicho sea de paso, los invitamos a pegarle un vistazo a éste repositorio, donde podrán encontrar diferentes ejemplos sobre Electron y más.


Otra de las grandes charlas que disfrutamos el viernes 15 (y la favorita de quién les escribe) fue la que brindó Soledad Penadés, sobre MediaCapture API y la capacidad de los browsers modernos para capturar y procesar audio y sonido. No sólo fue una presentación amena y didáctica, sino también muy divertida, gracias a los ejemplos y comentarios de color que Soledad supo brindar a cada momento.

Día dos

El día siguiente tampoco se quedó atrás, con aportes como la charla que brindó Guy Bedford sobre JSPM, un package manager ideado para trabajar con ES6, y la presentación de Juan Caicedo sobre ELM y cómo sacar provecho de los beneficios de la programación funcional.


Hubo también un espacio para las denominadas Lightning Talks, en las que los más intrépidos podían proponer un tema para exponer y, si resultaban elegidos, recibían el honor de poder realizar una pequeña presentación de cinco minutos.

Tampoco podemos dejar de hacer mención a la presentación de Alan Souza sobre SVG y la accesibilidad. Una charla que nos dejó un sabor a reflexión, recordándonos que el poder de la web está en su universalidad, y en la importancia de que todas las personas puedan acceder a la información independientemente de cualquier discapacidad.


Finalmente, ya sobre el cierre, Myles Borins y Rod Vagg hablaron largo y tendido sobre Node.js, permitiéndonos conocer más en profundidad sobre el funcionamiento de los distintos releases y el proyecto Node.js en sí (donde nos enteramos, además, que muy pronto será lanzada la versión 6).

Para ir cerrando

Difícilmente hayamos conseguido resumir todo lo que aconteció durante el 15 y 16 de abril en la JsConf Uruguay 2016. De hecho, quedaron cosas por mencionar: charlas, comidas, la fiesta de despedida, y más. 

No obstante, lo que queda claro, es que la experiencia ha sido más que positiva. Y es que, sin ninguna duda, presenciamos una gran conferencia, con grandes charlas y una bella ciudad haciendo de anfitriona.


Leer más...

Un recorrido por TypeScript

viernes, 19 de febrero de 2016


TypeScript representa la visión de Microsoft sobre JavaScript: un superset open source de uno de los lenguajes de programación más utilizados actualmente, al que le añade características que lo hacen aún más jugoso, como tipado estático, objetos basados en clases y capacidades de compilación y depuración en Visual Studio. Lo suficiente como para que ocupemos esta entrada hablando de él.

Con más de tres años en el mercado, TypeScript ha sabido ganarse un lugar en la comunidad de desarrolladores, especialmente en aquellos con largo recorrido dentro del ecosistema .NET. Incluso, causó cierto revuelo cuando, hace ya un año, se anunció que sería adoptado por AngularJS 2, la nueva versión del conocido framework.

En nuestro caso, llevamos un tiempo interactuando con TypeScript, en parte como consecuencia de un viaje aún más grande que decidimos emprender hacia tierras de Node.jsECMAScript 6. Nuestras impresiones fueron positivas, a punto tal que, en algunos de nuestros proyectos, hemos procedido a su implementación.

Todo suena muy bien, pero, ¿cómo funciona TypeScript? Echemos un vistazo a continuación.

Conceptos generales

El primer punto a destacar es que, cuando trabajamos con TypeScript, lo hacemos sobre un archivo con extensión .ts. Éste, luego de la compilación, se transforma en un .js, que será lo que finalmente terminaremos cargando en nuestra página.

El proceso de compilación se realiza directamente desde Visual Studio (siempre y cuando contemos con la versión 2013 Update 2 o superior), o bien de forma manual, a través del comando:
    tsc script.ts
Resulta interesante apreciar cómo el código generado es fácilmente legible. Además, la compilación nos genera source maps, algo que, sin dudas, supone un valor agregado importante al momento de hacer debugging.

Lo segundo por mencionar, es que al tratarse de un lenguaje tipado, nos permite definir clases, interfaces, y añadir información de tipos a los métodos. Esto es algo que podemos observar en la imagen que nos acompaña a la izquierda, donde se especifica que message debe ser del tipo string. Esto es algo sumamente interesante, ya que nos permite efectuar validaciones y detectar errores de manera inmediata, sin tener que pasar por la ejecución.



Así mismo, esto nos lleva a otro aspecto positivo, que es la posibilidad de tener toda esta información al alcance de la vista, a través de la ayuda que nos proporciona Intellisense.


El tercer punto importante, es que TypeScript es una extensión de JavaScript; esto significa, por un lado, que bajo ningún concepto estamos obligados a utilizar su sintaxis, pero, también, nos garantiza la total compatibilidad para con cualquier código ya existente escrito en JS.

Modularizando

TypeScript nos permite organizar nuestro código de dos maneras: utilizando el estándar CommonJS, o bien AMD (Asynchronous Module Definition).

Como en Node, en TypeScript tenemos las palabras reservadas export e import para exponer y acceder a los elementos de un determinado componente de nuestra aplicación.


Del mismo modo, también podemos importar librerías externas como jQuery, haciendo uso de lo que se conocen como typings. Siendo reconocibles por su extensión d.ts, estos ficheros de definición se utilizan para poder hacer referencia a dichos paquetes.

Aquí es importante hacer un paréntesis para mencionar Typings, un manager que nos simplifica enormemente el manejo de estas definiciones. Su instalación se realiza desde npm, y para más información sobre su uso, les encomendamos pegarle un vistazo al poderoso readme de su repositorio.

¿Cómo seguir?

Habiéndonos propuesto poder dar una respuesta a las preguntas fundamentales, como qué es TypeScript y cuáles son sus características principales, el primer paso ya está dado. Ahora, ya teniendo una idea más formada de lo que se esconde detrás de su nombre, el paso siguiente, y casi inevitable, es acudir a las fuentes: su vasta documentación. Una lectura ciertamente interesante, que nos permitirá aprender y comprenderlo en profundidad.
Leer más...