Hace una semana, a la edad de 89 años, fallece en Suiza el profesor Niklaus Wirth. Conocido principalmente por la creación del lenguaje Pascal, fue realmente el padre de los lenguajes de programación. Nunca cesó de crear en ese campo: Euler, Algol W, Pascal, Modula, Modula-2 y Oberon. Sus lenguajes exhibían principios claros de diseño: legibilidad, regularidad, seguridad, economía de formas. Los lenguajes de programación crean abstracciones, las cuales se basan en supuestos o axiomas: es responsabilidad de la implementación del lenguaje vigilar que cada vez que se utiliza alguna abstracción se cumple con los supuestos en los cuales se basa. Un ejemplo sencillo es la abstracción "arreglo", que permite el acceso a elementos mediante índices, y donde habrá de vigilarse que el índice esté siempre dentro del rango del arreglo. Hay abstracciones más complejas, hasta llegar, por ejemplo, al concepto de objetos y herencia o extensión de tipos. Son muchos los supuestos en que se bas
Ya casi nadie se entusiasma con los algoritmos y las estructuras de datos. Los programadores andan a veinte o más capas de distancia del hardware, Ya no es mi programa, el compilador y la máquina. No. Mi programa está hecho de IMPORTS e INCLUDES, de métodos cuyos ancestros ni conocemos. Y ahora, con la IA interpuesta, ¿qué será de nosotros, los programadopres? Me ha gustado un corto post en Quora (y la imagen, que reproduzco arriba): https://qr.ae/py96uf
Los modelos son simplificaciones de la realidad (a veces verdaderas sobre-simplificaciones). Sería ilusorio pretender modelar toda la complejidad de un determinado problema; lo que sí podemos es modelar algunos aspectos, luego comprender -gracias al modelo- un poco más sobre el problema, y mejorar entonces el modelo, incorporando nuevos aspectos. Un ente biológico tiene diferentes y numerosos aspectos; aquellos propiamente biológicos son bien complejos, no así los aspectos mecánicos. En estudios de genética, de crecimiento poblacional, de distribución espacial de organismos, de biología celular, etc. hay -en todos ellos- aspectos mecánicos, sencillos de simular y, a la vez, de gran interés práctico. Aquí desarrollaremos un modelo de algunos aspectos mecánicos de una epidemia (o de una pandemia, ya que ahora nos concierne tanto). Consideremos una población, en un área determinada (una ciudad por ejemplo), con algunos individuos contagiados de un determinado virus (u otro ente tra