¿Es posible reemplazar los trabajos de codificador y desarrollador con el código?

Creo que es difícil reemplazarlos a todos, al menos por ahora.

Una parte esencial de la codificación es cristalizar los problemas exactos que estamos tratando de resolver y diseñar un conjunto bien definido de entradas y salidas. Esto debe suceder con cualquier tarea de codificación, y esto implica convertir requisitos vagos a especificaciones bien definidas. Por ejemplo, un cliente puede entrar y pedirles a los desarrolladores que creen un software de contabilidad que produzca el balance general, los estados de resultados y los estados de flujo de efectivo. Ese ya es un conjunto de requisitos relativamente claro. Sin embargo, esto sigue siendo demasiado vago para basar un sistema de software. ¿Qué deben incluir las declaraciones? ¿Cómo se contabilizan los inventarios? Y una vez que comencemos a perforar, se generarán más preguntas y cada una de estas preguntas deberá resolverse para que el producto se entregue a los clientes satisfactoriamente.

Dicho esto, creo que existe la posibilidad. Citando esta historia de The Logic of Science: ET Jaynes, G. Larry Bretthorst: 9780521592710: Estadísticas: Amazon Canadá:

A muchas personas les gusta decir: “Nunca harán una máquina para reemplazar la mente humana; hace muchas cosas que ninguna máquina podría hacer”. J. von Neumann dio una hermosa respuesta a esto en una charla sobre computadoras en Princeton en 1948, a la que el escritor tuvo el privilegio de asistir. En respuesta a la pregunta canónica de la audiencia (“Pero, por supuesto, una simple máquina realmente no puede pensar, ¿verdad?”), Dijo:

Insiste en que hay algo que una máquina no puede hacer. Si me dices exactamente qué es lo que una máquina no puede hacer, ¡siempre puedo hacer una máquina que haga exactamente eso!

Entonces, si algún día descubrimos con precisión cómo funciona el proceso de especificación de software, es posible que podamos automatizarlo. Lo que significa “pensar” es el núcleo del problema.

Ya está hecho. Ahora usamos lenguajes de alto nivel que las computadoras traducen al código de máquina. HLL nos hizo 10 veces más productivos, por lo que esencialmente reemplazamos 10 programadores a partir de 1945 con 1 programador + computadora haciendo la mayor parte del trabajo.

Y a medida que pasa el tiempo, los lenguajes de programación se vuelven más de alto nivel ya que los compiladores mejoran sus habilidades. En la década de 1980, el ensamblador debería usarse para hacer programas más rápidos, pero hoy en día los compiladores de C ++ suelen realizar una mejor optimización que los humanos que escriben en lenguaje ensamblador. En la década de 1980, los lenguajes de programación funcional eran demasiado lentos para el entorno de producción, pero ahora usamos mucho los lenguajes FP (y el paradigma FP en otros lenguajes).

Entonces, sí, cuando programo Haskell e incluso cuando programo C ++, la computadora reemplaza de 10 a 100 desarrolladores que escriben código de máquina equivalente.