¿Por qué las computadoras se vuelven más rápidas mientras que el software se vuelve más lento, y esta tendencia cambiará alguna vez?

¿El software se vuelve más lento o hace mucho más?
Creo que es lo último. Puede ver esto claramente con el sistema que mantiene un rendimiento estable, digamos una consola de juegos, ya que tienden a permanecer de 5 a 10 años, y cómo su alcance y calidad visual mejoran durante este período.

Lo mismo ocurre con otros programas que hemos visto evolucionar durante una década. La primera versión de Word no incluía la corrección ortográfica, menos aún la autocorrección. Los programas de dictado / reconocimiento de voz eran muy pobres al principio y ahora no solo pueden reconocer una oración sin tener que marcar una pausa entre cada palabra, sino que también aprenden a adaptarse al acento / pronunciación específicos de su usuario específico, … Codificación de video / La transmisión es otra cosa aquí. Los programas para codificar y decodificar utilizan enfoques cada vez más complejos para poder producir y distribuir video con artefactos cada vez menos obvios en una definición que no solo compite sino que supera la forma no digital clásica que consideramos en ese entonces como la máxima (hoy en día 1080p a 4k) para ancho de banda relativamente común.

Y todos estos ejemplos solo se centran en programas que no están tan vinculados a las restricciones en tiempo real. El usuario puede esperar un poco para ver el impacto de su acción (no demasiado y esto puede variar de un dominio a otro). Cuando observa un problema en tiempo real, podemos hacer más y más con el software en el mismo hardware donde antes apenas podíamos implementar un teléfono tonto o las aplicaciones básicas que mencioné antes. La exploración de Marte recorre complejos relojes de planificación de movimiento y sistema de navegación en una CPU que apenas competiría con un Pentium de los años 90 y, sin embargo, hace incrustaciones y ejecuta eficientemente algoritmos complejos que ni siquiera se habían previsto en este momento.

La tendencia de la que estás hablando, el paso a lenguajes de alto nivel que son fáciles de desarrollar, se está produciendo porque el hardware está mejorando. La pérdida de rendimiento por la necesidad de interpretar un lenguaje de nivel superior habría sido devastador para la informática en la década de 1980, pero a medida que el hardware ha mejorado, ya no necesitamos optimizar el tiempo de ejecución porque la diferencia entre un proceso que se completa en 100 ms o 95 ms es insignificante para el usuario. Si el cambio de código requerido para la optimización sacrifica la legibilidad del programa a otro desarrollador, es mucho mejor tener un código que se pueda mantener y recibir el 5% de rendimiento; El hardware se acelerará en un 5% en los próximos meses de todos modos.

En ese sentido, es difícil ver cambiar la tendencia. Si el futuro tiene una escasez de poder de cómputo (tal vez las regulaciones gubernamentales sobre el uso de agua u otros recursos que se gastan en grandes cantidades en la fabricación de componentes informáticos aumentan enormemente el costo de la construcción de hardware), entonces tal vez verá un movimiento para aumentando la eficiencia de ejecución del software. Pero eso no parece probable en este momento.

Existe una ley conocida como “Ley de Parkinson” que dice que el trabajo se expande para ocupar el tiempo disponible y creo que hay un corrolario de software que dice que el software se expande para ocupar los recursos disponibles, memoria, tiempo, potencia de la CPU, etc. Esto regresa a la naturaleza de los seres humanos. Entonces, si tiene 4 conciertos de memoria, está inclinado a consumirlo hasta que encuentre un problema. El paso a lenguajes de enlace tardíos como JavaScript es un problema adicional, pero es la culpa de la vieja pereza humana.

El software se vuelve cada vez más lento porque los fabricantes siguen agregando campanas y silbatos a menudo sin sentido para que puedan decir que ha mejorado y cobrarle por una actualización.

El hardware se vuelve cada vez más rápido porque necesitamos computadoras más potentes para ejecutar el software nuevo y “mejorado”.

Hola,

Creo que no es correcto decir que el software o el lenguaje son ineficientes, en cambio, mire el hardware, cada pieza es como se requiere y pocos intentan hackearla o hacer que los alimentos sean geniales. Ahora acércate al software, ¿qué ves? Las personas intentan adaptarlo a sus necesidades o usar una herramienta para todo.

Ese es el problema, lo quiero ahora, lo quiero gratis, y lo quiero simple, y quiero que haga todo y … ¡Da da da!

Debido a que ha sido relativamente fácil hasta este momento escribir software que use el 100% de las capacidades del hardware. Por lo tanto, siempre ha sido el hardware persiguiendo objetivos de software. Y no, puede cambiar con el advenimiento de la nueva tecnología informática, como la informática cuántica.