¿Por qué hay tanto interés en comenzar a programar? ¿No estarán los programas haciendo toda la programación en un futuro cercano?

Como ya se mencionó: ya existe.
Por otro lado: nunca sucederá.

Permítanme explicarles esta contradicción: sí, los compiladores hacen la mayor parte del trabajo hoy, y lo hacen más confiable de lo que la mayoría de los humanos podrían.
Llevar esto un paso más allá sería a los lenguajes de programación funcionales: en lugar de decirle a la computadora qué pasos debe ejecutar, indique el resultado final deseado y deje que la computadora resuelva el resto (muy simplificado)

Ahora para la parte “nunca sucederá”:
Incluso con los mejores compiladores de hoy en día cuando se trata de bitmagic para exprimir esos últimos 0,5% de la velocidad de ejecución o el uso reducido de memoria, un ser humano vencerá a la computadora. Esto se debe a que el ser humano puede pensar fuera de la caja, a veces de manera peligrosa: es posible, bajo restricciones muy limitadas, intercambiar dos variables int sin usar una variable temporal al XORing tres veces.

Dudo que cualquier compilador pueda llegar a eso, y mucho menos determinar cuándo una solución de este tipo es apropiada (cuando se muestra) o no (el resto del tiempo).

Luego está la creatividad necesaria antes de escribir una sola línea de código: cómo dividir un problema en subproblemas, cómo agruparlos en módulos, cómo lidiar con las restricciones de tiempo y dinero, con los requisitos cambiantes …

Creo que lo que es más probable, y hemos estado viendo evidencia de ello durante años, es que la programación tendrá un nivel cada vez más alto en plataformas maduras, donde los programadores se ocuparán menos del “buen trabajo” de hacer que una aplicación o servicio funcione. su cosa, y en su lugar hará más meta-codificación que describe lo que quiere el programador, y el entorno de desarrollo hará el trabajo de adaptar los componentes parametrizados a lo que se describe, usando el código que genera la herramienta, “pegándolos” juntos para hacer el final producto. Casi se podría pensar que es más una cuestión de configuración que de trabajar con lógica, aunque creo que esa idea es demasiado restrictiva. Estoy usando esa idea más como una analogía.

Cuando surgen nuevas plataformas importantes, lo que hacen de vez en cuando, los primeros esfuerzos de desarrollo siempre comienzan en un nivel básico y bajo, porque los casos de uso típicos para el desarrollo aún no se han establecido. Así que no puedo ver un punto donde la programación siempre desaparece. Los programadores solo tendrán que mantenerse en pie sobre “lo que está de moda”, para que sus habilidades no estén actualizadas.

Los programas están realizando la mayoría de la programación incluso hoy en día, lo que llamamos “programación” en realidad está escribiendo declaraciones de problemas que esos programas pueden entender. Se les llama “compiladores” o “intérpretes” (dependiendo de su modo de operación).

Al hacer toda la programación, también puede hacer eso, pero no tiene sentido: los programas generados no harán nada. Alguien tiene que decir para qué quiere un programa y qué debe hacer, y esto ya es una forma de programación (a la que las personas sin entrenamiento no les gusta mucho, la mayoría de las personas no pueden articular lo que quieren de una manera suficientemente clara ni para otro humano). Para entender, mucho menos una computadora).

¿El código generado por computadora es realmente una realidad confiable últimamente?
No he escuchado muchas de estas noticias, lo que implica que probablemente todavía no sea algo serio.

Y alguien tiene que programar los programas que programará.
Todavía vamos a necesitar programadores humanos.
A menos que use los programas que programan para programar más programas que programan.

Los programas ya escriben programas. Se les llama compiladores. Y requieren que los programadores les digan qué escribir. Es posible que pueda producir un lenguaje de nivel superior que oculte más tuercas y tornillos. De hecho, los sistemas como HTML cubren grandes cantidades de corridas por debajo de las coberturas, pero aún deben saber qué hacer.

La parte difícil de la programación no es la programación en sí misma, sino el diseño del sistema: determinar qué se debe hacer. Siempre habrá una necesidad de eso,

No. Ha habido programas que intentaron ser creadores de programas (especialmente The Last One (software)), pero ninguno fue capaz de crear software lo suficientemente sofisticados como para cumplir con los requisitos del mundo real.