Crítica a la necedad de la programación en lenguaje natural
- Desde los primeros días de las calculadoras automáticas, han existido personas inconformes con la forma de programar que exige un sistema formal de símbolos.
- La máquina, como un “esclavo fiel” que ejecuta exactamente las instrucciones dadas, también lleva a cabo errores evidentes tal como fueron escritos.
- Algunas personas esperaban que, en lugar de ignorar los errores y ejecutar de todos modos, la máquina actuara de una manera más “racional”.
Aparición y desarrollo de los lenguajes de programación de alto nivel
- El lenguaje de máquina era visto como una interfaz peligrosa, con muy poca detección de errores o redundancia.
- En respuesta, surgieron los lenguajes de programación de alto nivel, junto con avances que evitaban resultados incorrectos mediante mensajes de error.
- Pero la programación seguía requiriendo símbolos formales y aún exigía una precisión minuciosa.
La propuesta de programar en lenguaje natural y la refutación
- Existía la idea de que controlar una máquina con lenguaje natural haría la vida más fácil al usuario.
- Se pensaba que, a medida que las máquinas se volvieran más complejas, esto podría ayudar al usuario.
- Sin embargo, cambiar la interfaz no ajusta el reparto del trabajo, sino que más bien añade carga de cooperación y comunicación.
- En la práctica, cuanto más se amplía la interfaz, más aumenta la carga de trabajo en ambos lados, y con frecuencia todo se vuelve más complejo.
Casos históricos de las matemáticas y los sistemas simbólicos
- Las matemáticas de la antigua Grecia permanecieron atadas a métodos centrados en el lenguaje y los diagramas, y su desarrollo se estancó.
- Las matemáticas islámicas también se interrumpieron al no adoptar un sistema simbólico.
- Europa logró avances extraordinarios cuando figuras como Vieta, Descartes, Leibniz y Boole introdujeron sistemas formales de símbolos.
Ventajas del lenguaje formal y límites del lenguaje natural
- Los lenguajes formales pueden prevenir muchos errores con solo unas cuantas reglas simples.
- Los símbolos formales permiten que incluso los estudiantes realicen razonamientos lógicos que antes solo estaban al alcance de genios.
- El lenguaje natural es ambiguo y tiende a mezclar expresiones sin sentido, por lo que no es adecuado para una formulación lógica libre de errores.
¿Y si el lenguaje natural hubiera sido la única forma de entrada/salida?
- Si desde el principio solo hubiéramos controlado las máquinas con lenguaje natural, al final habríamos necesitado de nuevo un proceso de “bootstrap” para volver a un sistema formal.
- Ese proceso podría haber tomado miles de años y, de todos modos, habría terminado desembocando en un lenguaje formal.
Retroceso educativo y el fenómeno del “nuevo analfabetismo”
- En las últimas décadas, el debilitamiento del entrenamiento intelectual ha hecho que muchas personas ni siquiera dominen bien su propia lengua materna.
- La abundancia de palabras vacías en artículos científicos, reportes técnicos y documentos gubernamentales lo demuestra.
- Este fenómeno permite prever el fracaso de la programación en lenguaje natural.
Intuición final
- Construir una máquina programable en lenguaje natural sería tan difícil como usarla
1 comentarios
Opinión de Hacker News
Existe la opinión de que defender a los LLMs (modelos de lenguaje grandes) es algo "cool"
Esto recuerda una vieja cita de Hal Abelson
El lenguaje natural tiene limitaciones que provienen de las limitaciones mentales humanas
El lenguaje de máquina se percibe como una interfaz innecesariamente peligrosa
En lugar de generar programas de computadora en lenguaje natural, deberían ejecutarse directamente
El lenguaje natural no es adecuado para transmitir reglas e instrucciones
Los lenguajes para dominios específicos ofrecen una precisión y una claridad que el lenguaje natural no puede dar
Forth, PostScript y Assembly son lenguajes de programación "naturales" que encajan bien con el entorno de ejecución del código
Los métodos avanzados de programación empezarán a parecerse más a lenguajes de programación que al lenguaje natural
Que los errores aparezcan como mensajes de error es una gran mejora