En pocas palabras: las computadoras actuales son demasiado “estúpidas” para hacer eso. Puede suceder que algún desarrollo futuro empuje sus habilidades más allá de esos límites, pero en la actualidad no existe tal cosa.
Para que algo como esto funcione, primero necesitará que la computadora “entienda” lo que quiere decir cuando le “pregunte” algo. Incluso eso ya es un gran problema. La mayoría de los lenguajes humanos (si no todos) están plagados de inconsistencias, matices, inflexiones, contexto, conceptos vagos / subjetivos, inferencias, etc. Incluso si la computadora puede traducir sus palabras en texto, aún no tiene idea de lo que realmente quiso decir: en el mejor de los casos, solo una idea rudimentaria al buscar en un diccionario.
Luego, necesitaría “diseñar” el problema que usted planteó. Y luego dividirlo en tareas. Gran parte de esto se forma realmente a través de la imaginación, especialmente si ese problema exacto no se ha resuelto previamente. Hasta ahora no hemos podido ver ninguna forma de imaginación desde las computadoras, lo más cerca que hemos llegado son algunas acciones aleatorias realizadas de manera similar al modelo de evolución (es decir, intente todo hasta que funcione mejor, luego continúe intentando más en orden para mejorar, enjuagar y repetir), que lleva varios años de simulación informática extrema para lograr incluso algo rudimentario. Quién sabe, quizás una nueva tecnología como la computación cuántica puede allanar el camino, pero eso es como una persona del siglo XIX que ve un motor de combustión interna y piensa: “Esto podría llevarme a la luna”. El punto es que no sabemos lo que realmente se necesita para lograr esto: todo lo que podemos hacer es adivinar hasta que aparezca algo que parezca proporcionar tales habilidades.
- Según mi horóscopo, ¿podré tener éxito como desarrollador de software, o existe la posibilidad de superar los mejores exámenes del gobierno?
- ¿Qué es mejor para comenzar una carrera, desarrollador de software o funcionario de IAS?
- ¿Cómo es un día en la vida de un desarrollador de software en Google?
- Cómo codificar de modo que la base de código se pueda adaptar para otros usos
- ¿Cómo te especializaste como desarrollador de software?
Finalmente, necesitaría traducir esas tareas en alguna especificación, por lo que no necesita pasar por todo este proceso cada vez que se ejecuta el “programa”. Esto lo hemos logrado en menor medida. La mayoría de los entornos RAD (desarrollo rápido de aplicaciones) convierten dichas tareas de una interfaz de apuntar y hacer clic en código fuente que la computadora “puede entender”. Pero todavía es una situación en la que la interfaz está diseñada para que no haya inconsistencias, y cualquier cosa específica indicada tiene un solo significado exacto, generalmente una tarea extremadamente simple para cualquier declaración en particular.
Aparte de eso, se inventaron varios lenguajes de programación (así como conceptos de programación) para hacer que tales tareas sean menos básicas. Por ejemplo, en lugar de que el programador establezca registros manualmente y emita saltos condicionales, se inventaron cosas como las declaraciones de bucle para convertir estas tareas extremas de bajo nivel en una tarea combinada. Como otro ejemplo, algunos lenguajes (como SQL) están diseñados para que el programador establezca cuál debería ser el resultado, no cómo llegar allí, pero aún así requieren un lenguaje muy simplificado (en comparación con los lenguajes naturales) con reglas muy consistentes y exactas. sintaxis, también son muy especializados y solo pueden realizar las tareas para las que han sido diseñados.
Lo más cercano que he visto a esa idea de “di lo que quieras” fue un lenguaje de consulta para un sistema de base de datos. Fue incorporado en un programa de db llamado Q&A. Efectivamente, escribirías algo como ” Dame todos los clientes que compraron algo en el último mes “. Luego, el programa buscaría esas palabras (después de dividirlas en espacios) en un diccionario de lo que cada una significa, simplemente desechando las que “no entiende”. Entonces obtendría ” Dar a los clientes que compraron el mes pasado “. Luego traduzca eso a una consulta SQL, algo así como:
SELECCIONE * #De la palabra “Dar”
DE Clientes ÚNETE a Compras #De la frase “Clientes que compraron”
DONDE Compras.Fecha> AHORA () – 30 #Desde “el mes pasado”
Pero ese mismo lenguaje estaría completamente desconcertado por una declaración como ” Asegúrese de que mi refrigerador esté abastecido para la fiesta de esta noche “. Solo puede hacer cosas para las que fue diseñado.