Supongo que tienes que preguntarte qué significa para una computadora “escribir código”. Vamos a definirlo así:
Dado un objetivo, generar instrucciones legibles por máquina para lograr ese objetivo.
Si tomamos eso como la definición de escribir código, entonces ya estamos en un lugar donde las computadoras pueden hacer eso. Técnicamente, hemos estado allí desde (justo después) del comienzo.
- Visión por computadora: ¿cómo se asignan / extraen los atributos de las imágenes?
- ¿Cómo funciona el reconocimiento de voz? ¿Qué avances en software / hardware deben hacerse para mejorarlo, o es solo una cuestión de construir una base de datos más grande?
- ¿Cuáles son los mejores / adecuados temas de investigación en inteligencia artificial para estudiantes universitarios?
- ¿Cómo se explica el aprendizaje de refuerzo inverso en términos simples?
- ¿Por qué odias la robótica?
Comenzamos teniendo que comunicarnos con el procesador en 1s y 0s (que ya era una abstracción de los altos y bajos voltajes que una computadora realmente usa). Finalmente, inventamos lenguajes de ensamblaje de bajo nivel, que nos permitieron hacer declaraciones más abstractas que la computadora convirtió en código binario para nosotros. Si nuestro “objetivo” era agregar dos números, entonces podríamos pedirle a la computadora que genere un código que haga eso, aunque tuvimos que escribir esa solicitud en un lenguaje bastante arcano.
La progresión ha sido crear más y más lenguajes abstractos, de modo que ahora pueda escribir algo como lo siguiente (suponiendo que se hayan establecido variables, etc.):
si manzana en la canasta:
obtener (manzana)
y la computadora generará el código necesario para verificar el contenido de la canasta y conseguirme una manzana.
Hablando de manzanas, puedo decir casualmente en voz alta : “Siri, llama a mamá” y mi teléfono generará el código binario necesario para conectar mi teléfono con el teléfono de mi madre en el otro lado del país.
Todo lo anterior supone que soy el agente generador de objetivos. Para evitar la pelea filosófica sobre si mi orden a Siri es diferente del texto que recibí de mi hermano antes diciéndome que llamara a mamá, supongamos que es el futuro y hemos resuelto ese dilema y le hemos dado a las computadoras la capacidad de ser agentes generadores de objetivos (que es lo que las personas quieren decir cuando hablan de IA fuerte o IA general). En ese caso, lo primero que una IA podría hacer es generar código para lograr los objetivos. [Si estamos hablando de algo más que una IA fuerte, entonces ya tenemos esta habilidad en cualquier compilador]