De safari con Chrome: cazando leaks en Javascript

Ay, Javascript, Javascript. Que tiempos aquellos en que todo el uso que te daba era “fadeardivs, hacer un poco de AJAX o añadir algún que otro copo de nieve en fechas señaladas. La robustez de nuestra relación radicaba en las bajas expectativas mutuas. Yo no te veía como un lenguaje de programación, más bien como un juguete prescindible, y tú no me dabas ningún feedback útil, para qué molestarte si no iba a exprimirte el jugo. Pero los tiempos han cambiado, las modas se imponen y suceden, y lo de no tomarte en serio ya no va a ser posible. Y es que se acabó lo de ser la comparsa en una página web, esta es la era de la aplicación web, y las aplicaciones web, cada vez más grandes y complejas, son cosa tuya por derecho. Pero que duro está siendo, que duro…

Vamos a amastrear a ese Javascript…

Orden y concierto

Programar es controlar. Ejercer de comandante de una máquina cabezota dándole un fin y los medios (en forma de instrucciones) para alcanzarlo. Ponemos orden en los pensamientos de esas entrañables calculadoras XXL (y en no pocas ocasiones XXX) y las empujamos a trabajar en nuestro mejor interés. Ahora lo llaman arte o artesanía, antes nos conformábamos con considerarlo ingeniería. No hay mucha magia detrás del asunto: se les habla en un lenguaje que entiendan, y suelen obedecer. Escribir software consiste en traducir una serie de instrucciones (un algoritmo) a un lenguaje de programación, para su posterior transformación en código ejecutable por la máquina. Dead simple, right? Pues a veces sí, pero a veces no.

Si el algoritmo que estamos aplicando es trivial, y se limita a una serie de pasos dados en un orden estricto, la traducción a código ha de ser igualmente directa. Pero, ay amigos, el software tiende a modelar problemas de la vida real, y en la vida real raramente son tan sencillas las cosas. Una estrategia estándar para atacar un problema complejo en descomponerlo en problemas más pequeños, fáciles (o más fáciles al menos) de solventar. La combinación de todas esas soluciones es la solución al problema original. Y de eso quiero charlar un rato hoy, de la combinación de procesos en la resolución de problemas complejos.

Resolvamos esos problemas…