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…

Advertisements