Hace más de cuatro décadas que comenzamos a desarrollar software masivamente utilizando el modelo de computación algorítmico. En los últimos años, otros modelos de computación han alcanzado notoriedad y éxito, como el aprendizaje automático o las redes neuronales, mientras ahora son otros, como la computación cuántica, los que comienzan a mostrar avances significativos. Cada uno tiene sus desafíos y su marco de aplicación.
Computación algorítmica
La computación algorítmica tradicional se basa en aplicar secuencias de operaciones a datos para conseguir resultados, ya sea a través de un lenguaje procedural, orientado a objetos o funcional. Los tres cuentan con una base matemática desarrollada en los años 50 e incluso antes, pero es durante los últimos 30 años cuando han evolucionado significativamente para afrontar el desarrollo de sistemas con mayor escala, criticidad y rendimiento. Han evolucionado desde ejecutarse en sistemas centralizados a distribuidos y multi-plataforma y, sus procesos de desarrollo han avanzado hacia el TDD y BDD. En el primer caso, cambia la forma de desarrollar: se construye un test unitario antes, luego el código que lo satisfaga y después se mejora. El segundo permite definir las pruebas funcionales en lenguaje casi natural y paralelamente a la definición de los requisitos, lo cual les retroalimenta.
Respecto a los datos, fácilmente pueden separarse en entornos de ejecución diferentes aquellos que se utilizan durante el desarrollo de los que se utilizan en producción real para asegurar su confidencialidad y evitar su corrupción. El marco de aplicación es quizás el más amplio de todos. Ejemplo de ello son los servicios digitales provistos por los bancos, las aseguradoras y los gigantes tecnológicos donde los desafíos siguen siendo la escalabilidad funcional, la fiabilidad y mantenibilidad

Aprendizaje automático e IA
Aunque ahora sea trending topic, las primeras nociones de aprendizaje automatizado e Inteligencia Argificial (IA) surgieron hace más de 70 años aunque ha sido durante los últimos cinco años cuando la IA ha despuntado debido a la potencia de cálculo y almacenamiento, al descubrimiento de nuevos modelos como los Convolutional Neural Networks que revolucionaron la identificación objetos en las imágenes y a las nuevas formas de entrenamiento como Controversial Neural Networks utilizadas por Google en Alphazero para auto-aprender a jugar.
El principio de desarrollo en IA se basa en entrenar un modelo a partir de algunos datos y resultados para conseguir que luego pueda resolver otros escenarios no entrenados. El proceso de entrenamiento es muy intensivo en cómputo e intervención humana para ajustar los parámetros del modelo hasta conseguir la fiabilidad y eficiencia deseada. Otra ventaja de la IA es que tanto el almacenamiento como la computación es perfectamente predecible y estable en el tiempo.
En cuanto a los datos, requiere que sean reales por lo que surgen desafíos en cómo definir operaciones seguras para realizar entrenamientos y ajustes sin comprometer la confidencialidad. También surgen otros desafíos como asegurar que los datos no son reversibles desde el modelo entrenado, el testing para asegurar la fiabilidad y la optimización para reducir el tamaño del modelo y su cómputo. La IA permite resolver problemas donde el número de reglas asciende a una escala que no es gestionable desde los modelos antes descritos, como por ejemplo el reconocimiento de imágenes, de voz o de contenidos. También está triunfando para aplicaciones como la conducción autónoma, la ciberseguridad, etc.
Computación cuántica
Si bien la computación cuántica se encuentra aún en fases experimentales, ya es posible programar y ejecutar algoritmos en ordenadores cuánticos disponibles como servicio. Recientemente Google y NASA han declarado conseguir ejecutar un algoritmo en 200 segundos cuando en el superordenador más potente se hubiese necesitado más de 10.000 años.
La computación cuántica se basa en ejecutar un algoritmo en un procesador cuántico donde todos los estados posibles son evaluados simultáneamente para encontrar resultados. El proceso de desarrollo y pruebas requiere de lenguajes de programación y librerías que aún están evolucionando. Puede requerir utilizar configuraciones que involucren datos con cierto nivel de confidencialidad, así como los propios resultados. En este sentido, los proveedores de servicios de computación cuántica ofrecen diferentes mecanismos criptográficos para garantizar la privacidad.
El ámbito de aplicación va desde la resolución de modelos químicos y físicos, a seguridad u optimización de tráfico de vehículos. En el sector financiero, puede aplicarse a la mejora de estrategias comerciales, a la optimización de cartera, a la fijación de precios de activos y al análisis de riesgos.
En definitiva, estos modelos de computación tienen ámbitos de aplicación claramente especializados. En IA ya estamos consiguiendo resultados asombrosos para resolver escenarios donde la algoritmia tradicional no puede escalar. En computación cuántica, veremos avances muy significativos en los próximos años, pero estamos en un buen momento para comenzar a explorar y estar bien preparados. Todos requieren de especialistas para desarrollarlos, gestionar sus operaciones y mantenerlos. Son modelos complementarios que deben convivir integrándose en soluciones compuestas. Su adopción como capacidad corporativa requiere de una gestión del cambio. Este puede comenzar por un centro de competencias que resuelva los primeros proyectos y habilite las infraestructuras y operaciones requeridas, consolidando el conocimiento en un equipo. Una vez conseguido un nivel de madurez adecuado y acorde al incremento de la demanda, este equipo puede escalar su capacidad a través de ayudar a que otros equipos consigan adoptarla.