Desestructuración en ES6. Parte I: arrays

Hay trucos que quedan bien en una línea de código y hay trucos que cambian nuestra forma de programar.

Si tuviera que quedarme sólo con una de todas las, ya no tan nuevas, funcionalidades y sintaxis de ES6 elegiría la desestructuración de arrays y objetos sin duda alguna. Es la que una y otra vez viene a echarme una mano y me deja tomarle el brazo.

Cierto, la sintaxis es marciana y difícil de entender al principio, pero créeme, compensa el esfuerzo de convertirla en una de tus herramientas habituales.

Continue reading →

Inmutabilidad y const

Primero fue let, y poco después const. Estos son los dos nuevos var que se han puesto de moda para definir variables en Javascript. Desde hace algún tiempo, con la moda funcional ha venido la ola de lo inmutable. El problema es cuando repetimos lo que dicen otros sin entenderlo. O peor aún sacamos conclusiones de una lectura rápida y nos convertimos en evangelistas de algo que no tiene ningún sentido.

Continue reading →

Lo que la gente piensa que es el HTML5.

Cliente: ¿Y por qué no lo hacemos en HTML5? Así será compatible con todos los navegadores ¿no? Porque Flash es una mierda, ya lo decía Steve Jobs.

Programador: Sigh!

Pues sí, gracias Steve Jobs, por hacernos la vida un poco más complicada a los programadores, especialmente a los que nos hemos estado dedicando a la programación de front-ends en la web.

Poco sentido tiene ya lamentar la caterba de sinsentidos y estupideces que la gente argumenta en contra de Flash, el mal está hecho. Queramos o no, los que vivimos de esto ya nos hemos visto obligados a aprender HTML5 (+javascript +CSS).

Sólo quiero puntualizar una cosa respecto al pasado. Siempre han existido buenos programadores (los que se preocupan por entregar un trabajo bien hecho, por aprender y entender lo que hacen, y por hacerlo cada vez mejor) y chapuzas (la mayoría, siento ser así de pesimista). Juzgar una plataforma de desarrollo (Flash) y los lenguajes de programación asociados a ella (ActionScript y Flex) por los trabajos mal realizados en ella es muy triste.

Respecto al presente, tengo varias cosas que decir. HTML5 no es ninguna panacea. Más bien todo lo contrario (¿hay algún potencial cliente leyéndome?). No se pueden desarrollar aplicaciones en HTML5 por sí sólo. Necesitas combinarlo con CSS y javascript para convertirlo a algo que se parezca remotamente a lo que se puede hacer en Flash. Y por cierto, el nivel general de lo que se escribe por ahí en javascript es todavía más lamentable del que se ve en Flash.

Desde el punto de vista técnico estas son las desventajas:

  • HTML5 no es aún un estandar: Sólo lo soportan las últimas versiones de los navegadores más modernos. Cada uno de ellos lo implementa a su manera, y lo que funciona en unos , no funciona en otros, (o funciona distinto, que es casi peor)
  • Con CSS3 pasa tres cuartos de lo mismo.
  • Con javascript también. Añádase que es un lenguaje basado en prototipos y no en clases. Esto no es en sí una desventaja, pero sí que lo es que la mayoría de los programadores medianamente serios están formados en lenguajes basados en clases. Añádase que no soporta comprobación estricta de tipos (tampoco un gran problema, pero multiplica los errores y complica el desarrollo de aplicaciones complejas). Añádase que es un lenguaje interpretado y que el rendimiento de la aplicación depende del navegador que se utilice para ejecutarla… En fin, no sigo por que la lista es larga.

Concluyendo, y espero que esto sí que lo lea algún cliente, el tiempo de desarrollo se multiplica por un factor que va de 3 a 5, y por tanto el precio también (si es que se espera un mínimo de calidad en el producto).

A pesar de todo esto (y es que soy bastante pesado y cascarrabias) yo estoy feliz con el cambio. Estoy aprendiendo un lenguaje nuevo y eso me divierte. ¿Qué más se puede pedir? No, si al final le voy a tener que dar las gracias a Steve Jobs.