Cuál es el lenguaje de programación informática más avanzado del momento?

Respuesta original: ¿Cuál es el lenguaje de programación más avanzado?

Diferentes lenguajes de programación son avanzados de diferentes maneras. No estoy de acuerdo con la respuesta de Marius Catalin's de que sólo se puede juzgar lo avanzado que es un lenguaje por su sistema de tipos, aunque esa es una forma de medir. Si esa es la medida, como él dijo, los lenguajes de la familia ML como Haskell e Idris tienen posiblemente los sistemas de tipos más avanzados.

Si "avanzado" significa, "tiene un montón de características de lujo", C++, Scala y tal vez C# tienen MUCHAS características, pero estoy seguro de que me estoy olvidando de algunos otros lenguajes de lujo.

En términos de tecnología de compilación, el LLVM está proporcionando una base de compilación muy interesante que parece golpear todos los puntos correctos de abstracción sin oscurecer lo que la máquina está haciendo en absoluto. Sospecho que LLVM IR será un importante competidor de C como objetivo de compilación en el futuro, ya que es potencialmente más potente en ese dominio.

Varios lenguajes implementados sobre LLVM también tienen compiladores muy interesantes que están un poco inspirados en los compiladores ML-ish. Rust utiliza el análisis estático no sólo para cuidar de los tipos de una manera segura, sino también para realizar un seguimiento de la asignación de memoria y hacer la concurrencia de una manera segura. Julia utiliza la inferencia de tipos en el compilador para producir código máquina híper-eficiente en tiempo de ejecución a partir de un lenguaje tipado dinámicamente.

En cierto modo, Lisp es el lenguaje más avanzado porque es el más simple. No tiene esencialmente ningún analizador sintáctico. El programador sólo escribe árboles de sintaxis literales, y puede modificar esos árboles de sintaxis mediante programación exactamente de la misma manera que modificaría cualquier otro dato de una lista. Debido a esto, la semántica de Lisp puede extenderse de forma arbitraria para añadir las características de cualquier otro lenguaje de programación con facilidad. Es el lenguaje de programación programable.