2 puntos por GN⁺ 2025-04-04 | 1 comentarios | Compartir por WhatsApp

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

 
GN⁺ 2025-04-04
Opinión de Hacker News
  • Existe la opinión de que defender a los LLMs (modelos de lenguaje grandes) es algo "cool"

    • Por otro lado, da curiosidad qué pasaría si se convirtieran proyectos de complejidad intermedia de código a lenguaje natural
    • Se duda si es posible describir suficientemente el comportamiento y los requisitos del código fuente, y si una explicación en lenguaje natural realmente sería más fácil de entender
    • Principalmente se muestran aplicaciones simples porque es difícil gestionar la complejidad y la precisión
    • Hay una razón por la que el lenguaje legal no es inglés común y corriente
  • Esto recuerda una vieja cita de Hal Abelson

    • La informática no es una ciencia y tiene poco que ver con las computadoras
    • La revolución informática es una revolución en la forma de pensar y en la forma de expresar las cosas
    • Las matemáticas ofrecen una noción precisa del "qué", y la computación ofrece una noción precisa del "cómo"
  • El lenguaje natural tiene limitaciones que provienen de las limitaciones mentales humanas

    • Como programador, a veces el problema o el absurdo solo se vuelve claro después de implementar el código
    • Toma más tiempo explicarlo con precisión en lenguaje natural
  • El lenguaje de máquina se percibe como una interfaz innecesariamente peligrosa

    • Se desarrollaron lenguajes de programación de alto nivel para reducir errores
    • Rust favorece al desarrollador al señalar los errores con claridad
    • Los LLMs se sienten como una especie de juego de adivinanzas medio inteligente
    • Se prefiere más el enfoque de Rust
  • En lugar de generar programas de computadora en lenguaje natural, deberían ejecutarse directamente

    • Se dan ejemplos de un sistema gráfico y de un programa de tres en raya
    • También harían falta prompts para un sistema de archivos y un sistema operativo multitarea
    • Se espera este tipo de avances a inicios de abril del próximo año
  • El lenguaje natural no es adecuado para transmitir reglas e instrucciones

    • Se pone como ejemplo el problema de la interpretación de las leyes en Estados Unidos
    • La claridad y la responsabilidad de los lenguajes de computadora logran un equilibrio
  • Los lenguajes para dominios específicos ofrecen una precisión y una claridad que el lenguaje natural no puede dar

    • Intentar lo contrario requiere más trabajo
  • Forth, PostScript y Assembly son lenguajes de programación "naturales" que encajan bien con el entorno de ejecución del código

    • La pregunta es para quién es "natural", si para los humanos o para las computadoras
    • La IA no hace que el lenguaje humano sea natural para las computadoras
    • La IA inventará lenguajes adecuados para su propio entorno
  • Los métodos avanzados de programación empezarán a parecerse más a lenguajes de programación que al lenguaje natural

    • Si no quieres programar, necesitas una manera de instruir a una inteligencia que programe por ti
    • Los métodos avanzados de instrucción se parecerán más a enseñar que al lenguaje natural
  • Que los errores aparezcan como mensajes de error es una gran mejora

    • A algunos les molesta más no poder ignorar los mensajes de error
    • Al juzgar las ventajas de un lenguaje de programación, hay quienes equiparan la "facilidad de programar" con la facilidad de cometer errores