¿Avanzar en CS en general hará que los algoritmos sean cada vez más complejos con el tiempo que las personas no pueden manejar? ¿Cuáles son las soluciones para ese caso?

Los algoritmos no se vuelven “complejos”, simplemente lo son. Todo un algo es un conjunto de pasos a seguir para que algo suceda. En este sentido, todo lo que cualquiera puede hacer (más allá de las ideas de CS) es en realidad un algoritmo. Abre la puerta de tu refrigerador, ese es un algoritmo, sube a un autobús, ese es otro algoritmo, camina a la tienda de la esquina, lo has adivinado, otro algoritmo.

La mayoría de las cosas ya son muy complejas. Definitivamente, la mayoría de los programas escritos para ejecutarse en computadoras son demasiado para que una sola persona los recuerde y comprenda completamente a la vez. Es por eso que los programadores tienden a dividir los algoritmos en partes más pequeñas. Hacer que cada parte sea más fácil de comprender e implementar.

Esto no es algo “nuevo”. De hecho, desde el principio, esta era una técnica para evitar tener que pensar en todo de una vez. Y también es una técnica para hacer que la traducción al lenguaje de la computadora sea un proceso más simple. Es toda la idea detrás de la programación, los lenguajes son simplemente herramientas utilizadas al hacer estas cosas.

¿Para el futuro? En realidad, podría ser “más fácil” a medida que se construyan y compartan más porciones de algoritmos de propósito general. Comienza a ser más una cuestión de buscar uno con el ajuste adecuado para su “problema”, en lugar de diseñarlo desde cero. Y sin embargo, esto tampoco es algo nuevo. Ha sido el principio rector de la reutilización de código.