Esto puede parecer una pregunta extraña para algunos de ustedes.
Soy un programador aficionado de Java. He desarrollado varios juegos, un programa de IA que crea música, otro programa para pintar y cosas similares. Esto es para decirle que tengo experiencia en programación, pero no en desarrollo profesional de aplicaciones comerciales.
Veo muchas conversaciones en este sitio sobre el rendimiento. La gente a menudo debate cuál sería el algoritmo más eficiente en C # para realizar una tarea, o por qué Python es lento y Java es más rápido, etc.
Lo que estoy tratando de entender es: ¿por qué importa esto?
Hay áreas específicas de computación donde veo por qué importa el rendimiento: juegos, donde ocurren decenas de miles de cómputos cada segundo en un ciclo de actualización constante o sistemas de bajo nivel en los que otros programas dependen, como sistemas operativos y máquinas virtuales, etc.
Pero para la aplicación comercial normal, típica de alto nivel, ¿por qué importa el rendimiento?
Puedo entender por qué solía importar, hace décadas. Las computadoras eran mucho más lentas y tenían mucha menos memoria, por lo que había que pensar detenidamente sobre estas cosas.
Pero hoy, tenemos tanta memoria de sobra y las computadoras son tan rápidas: ¿ realmente importa si un algoritmo Java en particular es O (n ^ 2)? ¿Realmente hará una diferencia para los usuarios finales de esta aplicación empresarial típica?
Cuando presiona un botón GUI en una aplicación comercial típica, y detrás de escena invoca un algoritmo O (n ^ 2), en estos días de la informática moderna, ¿realmente siente la ineficiencia?
Mi pregunta se divide en dos:
- En la práctica, ¿importa hoy el rendimiento en un programa comercial normal típico?
- Si es así, deme ejemplos reales de lugares en una aplicación de este tipo, donde el rendimiento y las optimizaciones son importantes.