Le di esta respuesta a una pregunta similar … Espero que esta sea la forma correcta de agregar mi respuesta a esta.
Esta es una gran pregunta porque se encuentra en el límite entre las tendencias de crecimiento exponencial de la “ley” de Moore y la evolución más complicada de la comunicación humana, el proceso de trabajo y la organización.
Desde un crecimiento exponencial puro del punto de vista de cómputo, deberíamos esperar un aumento de aproximadamente 2 ^ 15 o 32000 veces en el procesamiento (se duplica cada 1.5 años), la capacidad de la red, el almacenamiento (consulte la cuidadosa revisión de Ray Kurzweil en su charla).
A partir de una evolución de los lenguajes informáticos, podemos decir que la evolución no es exponencial en función de las fechas de inicio de los idiomas pasados. El límite estructural para una generación exponencial de lenguajes de programación de computadoras es que necesita que el nuevo lenguaje de computadoras sea aceptado ampliamente, y esto requiere tiempo y algún tipo de política de programación, convenciendo a las personas de que la nueva idea es necesariamente mejor.
Algunas otras ideas sobre por qué los lenguajes informáticos no han evolucionado muy rápidamente se presentan en esta gran charla Bret Victor, bestia de carga (final ligeramente pedante).
Los lenguajes que se usan comúnmente hoy en día incluyen muchos que se inventaron hace mucho tiempo, como C en 1971. Incluso Python, uno de los lenguajes nuevos más sofisticados, es una fecha de nacimiento de 1985 que es de 2 ^ 20 o 1048576 Moore-años.
Si bien a menudo nos preguntamos qué lenguaje de programación utilizamos, cada vez más la competencia de un equipo de programación está relacionada con la biblioteca específica con la que está trabajando. En el lado de la computación científica avanzada, por ejemplo, no es inusual para todo lo que necesita estar ya en MatLab, por ejemplo, pero usted, como usuario, no lo entiende lo suficiente como para comenzar a programar.
Si bien todo lo que hacemos está facilitado por mejores editores, sistemas, aprendizaje automático, etc., el software no ha podido aumentar su robustez. Los errores críticos todavía ocurren y pueden ser un acuerdo de todo o nada en un proyecto. Dejar el sistema expuesto a los ataques, que requieren un mantenimiento continuo, establecer un punto único de falla, como las organizaciones en las que una falla puede tener un gran efecto en un mercado financiero, por ejemplo.
Si medimos la programación de computadoras por poder puro para crear con menos líneas de código, creo que los lenguajes de programación existentes funcionan bastante bien. La ventaja diferencial de un idioma sobre el otro en términos de productividad es de un orden de magnitud aproximadamente. Si no logramos innovar significativamente en los últimos 45 años, espero que no innovemos aquí en los próximos 15 años.
Lo que será diferente será el contexto en el que funcione la programación:
- En muchos casos, será una cuestión de responsabilidad legal que, como programador, identifique personalmente sus cambios en una base de código complejo.
- La base de código complejo se modularizará en secciones redundantes que se evalúan de forma periódica para comprobar su robustez.
- Las unidades programáticas modulares se pueden buscar y conectar a través de una interfaz más plástica que la API.
- Los problemas básicos de sintaxis se resolverían automáticamente (es probable que incluso puedas cambiar la sintaxis en medio de tu código).
- Los patrones de uso de la biblioteca se examinarían según los análisis que se devuelven al propietario de la biblioteca para que puedan sugerir los pasos faltantes.
- Mientras está programando, la búsqueda inteligente intentará identificar lo que está codificando para poder proponer características útiles de biblioteca para integrarse.
- La vinculación de código a menudo será descentralizada y autorizada. IE: no sabe dónde está el código, no sabe exactamente quién lo programó, pero es el código que cree que es y está garantizado por una lista de garantes que se expondría si hubiera un problema.
- La programación utilizará bibliotecas con una combinación de patrones de almacenamiento, computación y monetización.
Un buen ejemplo es cómo Ethereum está recreando versiones de los lenguajes existentes para su enfoque descentralizado, IE: Serpiente en lugar de Python …