10.11.20

Published 11/10/2020 09:35:00 a. m. by with 0 comment

Computer Science as the continuation of Logic by other means

Nunca hablo de informática por aquí aunque estaría bién hacerlo más.

Desde que aprendí los Algebraic Data Types (especificación algebraica abstracta) en que se veía la diferencia entre lo abstracto (matemático) y su implementación (artefacto de software) sufrí una conversión intelectual. La informática es Computer Science, es una disciplina lógica que además se implementa, es lógica computable. ("Computer Science as the continuation of Logic by other means" Georg Gottlob)

Después vino la lógica matemática, lambda cálculo, functional programming, relational data model etc. A hombros de gigantes: Church, Hindley-Milner, Moggi, Wadler, etc. El resto es historia.

Pues bién el impacto de esta visión aún es limitado y la mayoría del software está dominado por una exceso de pragmatismo cortoplacista.

El 90% de lo que hacemos en el día a día es implementar mediante mecanismos ad hoc (spaghetti gluing) mecanismos de composición de funciones y de transformación de datos.

También mediante mecanismos ad hoc usamos els paralelismo y la distribución de máquinas de un poder asombroso. Nadie discute los avances de hardware sin duda impresionantes.

Pero el software trabaja a un nivel de abstracción ridículo y eso produce que la composición y transformación (y el paralelismo y la distribución) nos lleve la mayor parte del esfuerzo. Además por ser ad hoc y no abstracto son costosas de modificar y mantener por inflexibles y generales.

La teoría de las categorías, la más abstracta matemática pueden ser el camino. (Wadler y Moggi iniciaron el camino práctico pero desde la ignorancia queda mucho por hacer).

Veremos.


      edit

0 comentaris:

Buscar este blog

Con la tecnología de Blogger.

Entrada destacada

¿por qué?

En 1974 Philippe Petit cruzó sobre un cable a 400 metros de altura entre las dos torres del World Trade Center. Cruzó ocho veces y estuvo 45...