Qué es la teoría de categorías y cómo se ha convertido en tendencia en programación.

Existe una rama de las matemáticas llamada teoría de categorías que recientemente ha captado la atención de varios medios científicos tras ganar bastante popularidad dentro de la comunidad matemática en los últimos años. Hay investigadores que tuitean más sobre teoría de categorías que sobre sus propias especialidades. Pero, ¿qué es esta rama de las matemáticas y por qué está tan de moda?

¿Que es la teoría de categorías?

En esencia, la teoría de categorías es el estudio de la composición. Una categoría es una colección de objetos y morfismos entre ellos de manera que la composición tenga sentido. Este tipo de estructura resulta ser muy común en la mayoría de los campos de las matemáticas. Es más, tiene un fuerte vínculo con la lógica y la teoría de tipos a través de las categorías cartesianamente cerradas. En programación funcional, algunos diseños como las mónadas son originarias de la teoría de categorías.

La teoría de categorías nos ofrece al mismo tiempo un lenguaje común por el que se pueden entender matemáticos de distintas ramas a través de una poderosa abstracción a la composición de funciones. Es más, la teoría de categorías ha encontrado un interés en el campo de la ciencia de la computación.

Las matemáticas de las matemáticas

Algunas personas llaman a la teoría de categorías “las matemáticas de las matemáticas”, ya que se sitúa por encima de muchas disciplinas matemáticas, conectándolas. Fue propuesta en 1945 como una herramienta para trasladar problemas matemáticos de un campo a otro, en el que se pudieran resolver con mayor facilidad. Por ejemplo, sabemos que en cualquier momento debe haber un punto en la superficie de la Tierra donde la velocidad del viento es cero. Pero para demostrar este precioso resultado lo debemos traducir a una afirmación algebraica, para lo que es útil emplear una pizca de teoría de categorías. Habitualmente, resultados más complejos requieren más teoría de categorías. La demostración del último teorema de Fermat, por ejemplo, se basa en una gran cantidad de matemáticas del s. XX y la teoría de categorías jugó allí también su papel.

Desafortunadamente, este alto nivel de abstracción superó incluso el grado de tolerancia de los propios matemáticos y, durante años, muchos de ellos han considerado esta teoría como un “sinsentido abstracto” y se han limitado a usarla cuando era totalmente necesario para su trabajo. Sin embargo, otros sí aceptaron con los brazos abiertos la belleza y el poder de esta disciplina, lo que hizo que su influencia fuese extendiéndose de forma gradual no solo en las matemáticas, sino también en otras ciencias. A partir de la década de 1990 comenzó a infiltrarse en las ciencias de la computación: nuevos lenguajes de programación como Haskell y Scla, por ejemplo, empleaban ideas de la teoría de categorías. Actualmente aparecen nuevas aplicaciones de esta teoría a la química, la ingeniería eléctrica o ¡incluso para diseñar frenos de los coches! La teoría de categorías aplicada, que en otra época hubiese sido considerada un oxímoron, se está convirtiendo en un tema de investigación real.

Entendamosla

Para entender de qué manera se aplica esta teoría a tantos contextos, es necesario conocer sus ideas básicas. Una categoría está formada por una clase de objetos junto a una clase de morfismos –un tipo de procesos, o caminos– sobre esos objetos. Por ejemplo, podemos tomar como objetos las ciudades, y como morfismos las rutas para ir de una ciudad a otra. El requerimiento fundamental que han de cumplir las categorías es que, si tenemos un morfismo de un objeto x a otro y, y otro de y a z, es posible componerlos y obtener un morfismo de x a z. En el ejemplo anterior, si hay una carretera de Madrid a Sevilla, y otra de Sevilla a
Faro, entonces esa ruta (Madrid-Sevilla-Faro) conduce de Madrid a Faro. Por tanto, existe una categoría de las ciudades y las rutas entre ellas.

Aunque el concepto de categoría es muy simple, explotarlo no lo es tanto. Centrar la atención en los morfismos supuso un cambio radical en la perspectiva de las matemáticas. Desde comienzos de 1900, los lógicos habían intentado refundar las matemáticas sobre principios sólidos, lo que resultó ser una tarea difícil y elusiva. Su mejor baza empleaba la llamada Teoría de Conjuntos. Un conjunto es, simplemente, una colección de elementos. Estos elementos, en la teoría de conjuntos más utilizada por los matemáticos, son de nuevo, conjuntos. En esa estática cosmovisión, todo es un conjunto. Por su parte, la teoría de categorías se construyó sobre la teoría de conjuntos, usando la noción más general de clases, y enfatizando en las maneras de transformar las cosas –los morfismos–, tanto como en las propias cosas. No era incompatible con la teoría de conjuntos, pero ofrecía una nueva manera de pensar.

Poco a poco, un grupo disperso pero cada vez más amplio de investigadores se han ido acercando a esta forma de razonar, aplicando la teoría de categorías a temas fuera del ámbito de las matemáticas. Por ejemplo, a la programación: un programa es también una manera de transformar una serie de datos de entrada en datos de salida y la manera más sencilla de construir programas complicados es componer programas más simples.

Hay rumores de que incluso podremos ver, en breve, un instituto de teoría de categorías aplicada, que conectará a los matemáticos con programadores o empresarios que requieran esta forma de pensar. Es demasiado pronto para garantizar que estamos al comienzo de una nueva tendencia.


¿Quieres aprender a programar de manera profesional?

 

Te invitamos a formar parte de Azul School donde vas a tener acceso a cursos profesionales con certificado. Además tienes acceso a una red social de programadores donde puedes conocer gente de tu ciudad o país.

 

Si quieres acceder a todas las funciones te regalamos un descuento del 75% usando este cupón (no vas a encontrar este descuento en ningún otro lugar) Cupón: azulweb y lo puedes cambiar aquí: Haz clic aquí para cambiar el cupón del 75%.

 

También puedes probar la plataforma de forma gratuita y obtener un curso gratuito aquí: Haz clic aquí para probar la plataforma de forma gratuita.


También te podría gustar...

¿Que quieres aprender hoy?