¿Por qué los ingenieros de software no desarrollan software que pueda hacer el software para ellos?

Existen:

  • Herramientas de automatización que implican la generación de código para el desarrollo de software.
  • Bibliotecas o marcos reutilizables que podemos usar una y otra vez

Esas son las herramientas de producción públicamente disponibles que son las más cercanas a un software que nos dio un nuevo software.

Pero es solo una pequeña parte del software, se ocupa de los detalles de nivel inferior que son repetibles / reproducibles con ciertos patrones.

El resto que hace que cualquier software sea útil todavía requiere creatividad humana (lo que a menudo produjimos con lenguaje de alto nivel o herramienta de diseño).

Con mejores herramientas o abstracciones, puede lograr una mayor abstracción, luego tratará de pensar en mejores formas de crear algo útil. También puede considerar que todas estas herramientas son defectuosas y no proporcionan lo que necesita. Debido a esto, querrás refactorizar algunas partes o incluso reescribir.

Entonces, lo que sucede aquí es que continuará escribiendo su propio software, el único límite es la capacidad de su cerebro para pensar en algo nuevo.

Lo hacen, en realidad. Los ingenieros de software desarrollan mucho software que produce otro software.

El concepto mismo de un lenguaje de programación se basa en la idea de un software para hacer computadoras. Verá, internamente, la electrónica de una computadora solo comprende secuencias de 0s y 1s. Estos ceros y ceros aplican voltajes a las puertas lógicas y dan como resultado la ejecución del programa. La idea general de un lenguaje de programación es permitir que el humano escriba una descripción de alto nivel, legible por humanos, de lo que quiere que se haga, y que el compilador / intérprete del lenguaje de programación descubra cómo convertir eso en 0s y 1s.

¿Quiere decir por qué no creamos una IA que pueda escribir software desde cero, simplemente reuniendo requisitos? Porque nadie sabe cómo hacer eso. Estamos trabajando en ello.