Primera Jornada del Grupo de Estudio Javascript Madrid

05 Ago 2011

Introducción

Casi de forma expontánea, con tan solo unos días de antelación, se ha organizado esta semana en Madrid un interesante Grupo de Estudio sobre Javascript. Como no podía ser de otro modo, y viendo a tantos buenos profesionales allí reunidos, la cita no defraudó a nadie.

Para todos aquellos que no han podido asistir (agosto es un mes duro en Madrid), o que quieran tener una idea de cómo se desarrollan este tipo de eventos, escribiré un artículo tras cada clase resumiendo los puntos más interesantes, aportando bibliografía y aquellos recursos adicionales que puedan ayudar a quienes deseen profundizar más.

Veamos sin más qué dio de si la primera jornada.

Idea

La idea de este tipo de grupos es reunir en un mismo espacio a profesionales o interesados que quieren aprender de un modo colectivo un determinado lenguaje o paradigma. Lo habitual es encontrarse con no más de 10 personas debidamente equipadas con su portátil que son, en definitiva, ‘los colegas de siempre’… Pero en este caso, lo que más me ha llamado la atención es la difusión y respuesta que se ha conseguido en tiempo récord: casi 35 personas!! De entre ellas, muchos conocidos, @ialcazar, @eamodeorubio, @serginator, @pasku1,… casi nada al aparato…

Arrancando

Como todo curso, hay que comenzar con una introducción general al lenguaje que vamos a estudiar. La presentación corrió a cargo del bueno de @ialcazar quien confesó que las diapositivas que iba a proyectar se las había tomado prestadas a basaban en un trabajo anterior de Alfredo Casado: no hay problema, seguro que son geniales.

Y ahí nos mostraron como Javascript es un lenguaje imperativo, dinámico, basado en prototipos, y todas esas consideraciones que son habituales a la hora de organizarnos mentalmente: teoría sobre la que luego articularemos nuestro código.

Continuamos con un interesante repaso a cómo cada navegador interpreta Javascript de una u otra forma tomando como referencia la especificación ECMA. Sobre este aspecto, podemos revisar el artículo Comparativa entre los Distintos Motores ECMAScript.

Después, @pasku1 nos comentó el devenir de Javascript tras la JSConf2011 en la que se fueron planteando las líneas generales de lo que será la nueva especificación Harmony (véase el siguiente artículo para un análisis de lo comentado). Se citó a CoffeScript como un punto de referencia para lo que será una revisión del lenguaje más orientado a objetos. Para los interesados, en OpenLibra tienen a su disposición un interesante manual en descarga directa sobre CoffeScript.

Tipado

Siguiendo una introducción lógica, tocaba hablar de cómo el tipado blando de este lenguaje determina de forma fundamental la escritura de código. Para quienes deseen profundizar en este aspecto, pueden ojear el artículo Entendiendo el Tipado Blando en Javascript.

Dada la dificultad de identificar el tipo variable de un objeto Javascript, salió a la luz la técnica del Duck Typing: “Si parece un pato, anda como un pato y hace ‘cuack’ como los patos, es un pato.”. Tenéis un desarrollo completo de esta metodología alternativa aquí.

Una vez metidos en tipos, hay que diferenciar entre las igualdades simples y estrictas en Javascript, algo fundamental para no caer en errores provocados por los falsy values o la coerción de datos.

Variables

Importante es cómo afecta la declaración de variables al entorno de ejecución en que se llaman; @eamodeorubio nos habló sobre ello. Rápidamente pasamos por variables globales y locales, uso del comando var y, como no, el siempre problemático hoisting. Aquí la cosa se complicó porque, ciertamente, es un tema difícil de asimilar si no se ha tratado nunca. Recomiendo el artículo Hoisting en Javascript donde se pueden estudiar diversos escenarios y sus resultados.

Debuggin

Mientras escribíamos código, echamos manos de herramientas como la consola de Firebug y Chrome para correr los ejemplos. Como algunos interesados en la sala no conocían bien el funcionamiento de estas importantes utilidades, puede resultarles interesante el artículo Consola de Firebug al Detalle.

Tormenta de conceptos

Entre las explicaciones anteriores, se fueron colando conceptos interesantes que se irán desarrollando en las futuras sesiones. Algunos de ellos fueron la metodología TDD, las funciones lambda, los patrones de diseño, y el manejo del DOM mediante bibliotecas como jQuery o Prototype. Y, por supuesto, el ya omnipresente paradigma del Javascript en servidor con NodeJS. Para quienes tengan curiosidad por adentrarse en esta nueva perspectiva del lenguaje, libros como Mastering NodeJS pueden resultarle de gran utilidad.

Bibliografía

Cerrando la clase de hoy, @pasku1 recomendó como bibliografía útil dos importantes recursos: el gran libro de Haverbeke, Eloquent Javascript (en descarga directa desde OpenLibra) y la página javascript.info desde la que podemos seguir diversos tutoriales muy didácticos acompañados de ejercicios prácticos.

También, durante las explicaciones, pudimos ver fragmentos de código extraídos del Javascript Garden, otro gran recurso online para quienes se inician en la programación Javascript.

Conclusión

Y eso fue todo lo que dio de si la jornada: dos horas en las que se repasaron todos los fundamentos del lenguaje Javascript de un modo ameno y entre amigos.

Para las próximas citas, se avanzará sobre un temario casi improvisado en el que gracias a la participación de los asistentes, todos aprenderemos curiosidades nuevas.

Más:

{9} Comentarios.

  1. ialcazar

    Excelente artículo Carlos, sin duda nos va a servir de gran apoyo a todos. Muchas gracias.

    Fueron dos horas bastante intensas en las que aprendimos bastantes cosas. Solo dejar la url de la wiki del grupo de estudio http://gejs.jottit.com.

    Ahh, las transparencias no es que sean de Alfredo Casado, digamos que estaban basadas en unas que me dio él hace unos años en un curso pero son de elaboración propia :-).

    Nos vemos en la siguiente reunión, es una suerte contar con tanta gente de nivel en el grupo.

  2. Sergio Ruiz

    Genial resumen. Y allí estaremos el próximo jueves si puede ser! Te ha faltado sólo añadir que la idea es hacerlo durante el mes de agosto y luego ya se verá, y que en principio los jueves 😉 Ah! Y por si es de utilidad, el link a la web y que en ésta se puede ver el vídeo de la reunión https://gejs.jottit.com/ jeje
    Un saludo!

  3. juan

    Genial, mientras no las hagáis en Barcelona tendré que conformarme con esto, que no es poco.
    Saludos!

  4. Txus Ordorika

    Buenísimo el resumen, con múltiples enlaces a material online. Muchísimas gracias!

  5. guzman

    podiais grabarlo con una webcam y luego subirlo, que los que estamos de vacaciones no podemos ir 8)

    • Carlos Benítez

      Se retransmite por streaming; a ver si encuentro la dirección y la cuelgo aquí.

      Saludos!

  6. Oscar

    También voto por un evento de estos en Barcelona, mientras tanto me apunto al striming!

    Saludos.

  7. Victor

    Chevere(muy bueno), se ve que estuvo muy entretenida la jornada, y muy buenos links de recursos, hay mucho q aprender 🙂

    Gracias Carlos.

  8. Sebastian Alvarez

    Me estoy poniendo al día, son dos clases las que he faltado y valla si pesan, gracias por la iniciativa, se agradece realmente este tipo de “iniciativas open source”.
    Gracias por la información !

    Un Saludo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *