⬅️ Atlas · 🧟 Lenguajes que siguen vivos · 📚 Índice de clases
Este es el índice de las 60 fichas de lenguaje del repositorio: una por cada lenguaje que aparece en
el programa, sea del núcleo que se implementa en las 136 clases, de los primos del Atlas que
aparecen en cada primos.md, o de los lenguajes vivos que aparecen en cada vivos.md.
Todas siguen la misma estructura: por qué está en el programa, tabla de identidad, historia, dónde vive hoy, lo que enseña y no enseña ningún otro, lo que se ha modernizado, cómo se ejecuta hoy con órdenes reales, el programa de la clase 041 explicado línea a línea, y bibliografía con libros y fuentes concretas.
⚠️ Qué está verificado y qué no. El programa de la clase 041 de cada ficha es el mismo de la clase, y su estado de verificación es el que declara la clase 040: las 10 implementaciones del núcleo y 3 primos (Ruby, Perl, Lua) se ejecutan en CI; los 8 lenguajes vivos compilables también. El resto son material de lectura: están escritos para ser correctos y no llevan el sello de la máquina. Cada ficha lo dice en su apartado.
Se implementan y se verifican en CI en las 136 clases de código. Son los representantes de familia del programa.
| Ficha | Año | Familia que representa | Lo que aporta al programa |
|---|---|---|---|
| Python | 1991 | Scripting dinámico | Legibilidad como criterio; el pegamento del sistema |
| JavaScript | 1995 | JavaScript / web | Prototipos, bucle de eventos, coerción débil |
| TypeScript | 2012 | JavaScript / web | Tipado gradual y borrado de tipos |
| Java | 1995 | JVM | Máquina virtual con JIT, recolector, interfaces |
| C# | 2000 | .NET | Genéricos reificados; origen de async/await |
| Go | 2009 | Sistemas | CSP: gorrutinas y canales; lenguaje pequeño |
| Rust | 2010 | Sistemas | Propiedad y préstamo; concurrencia sin carreras |
| C | 1972 | C / llaves | La ABI común; memoria manual |
| SQL | 1974 | Lógica y declarativa | Declarar el qué, no el cómo |
| PHP | 1995 | Scripting dinámico | Ejecución sin estado por petición |
Aparecen en el vivos.md de cada clase. Ocho se ejecutan en CI; el resto se declaran como
adaptados o de lectura. Su índice propio, con los tres niveles de rigor, está en
vivos.md.
| Ficha | Año | Dónde sobrevive | Lo que enseña |
|---|---|---|---|
| COBOL | 1959 | Banca, seguros, administración | Decimal exacto; el lote |
| Fortran | 1957 | Cálculo científico, HPC | Arreglos y vectorización |
| Ada | 1980 | Aviónica, ferrocarril, defensa | Tipos con dominio; contratos; SPARK |
| Pascal | 1970 | Enseñanza; Free Pascal | Lenguaje pequeño y legible |
| Delphi | 1995 | Escritorio de empresa | Componentes, RTTI, of object |
| Common Lisp | 1984 | IA simbólica, herramientas | Código como dato; imagen viva |
| AutoLISP | 1986 | AutoCAD | Lisp incrustado en un producto |
| Tcl | 1988 | Diseño de circuitos, Expect | El lenguaje para ser incrustado |
| Perl | 1987 | Texto, integración, bioinformática | Expresiones regulares; CPAN; taint |
| C++ | 1985 | Motores, navegadores, BD | RAII; plantillas; comportamiento indefinido |
| RPG | 1959 | IBM i: gestión | Firma de programa de servicio; ILE |
| PL/I | 1964 | z/OS: seguros, banca | Ambición total y su precio |
| M / MUMPS | 1966 | Sanidad (VistA, Epic) | El dato persistente sin impedancia |
| Smalltalk | 1972 | Nicho; enorme influencia | Todo es objeto; MVC; refactorización |
| JCL | 1964 | z/OS | Orquestación de trabajos con dependencias |
| Assembler | 1949 | Firmware, núcleos, mainframe | Lo que hay debajo de todo |
| VBA | 1993 | Excel, Access, Office | El lenguaje incrustado con más usuarios |
| VB.NET | 2002 | Gestión de empresa | La ruptura de compatibilidad como lección |
Representante del núcleo: C. Memoria explícita, tipos declarados, sintaxis de llaves.
| Ficha | Año | Lo que aporta |
|---|---|---|
| C | 1972 | La ABI común de la interoperabilidad (clase 157) |
| C++ | 1985 | RAII, plantillas, abstracción sin coste (clase 132) |
| Objective-C | 1984 | Despacho dinámico de mensajes sobre C (clase 111) |
| Zig | 2016 | Asignador explícito y comptime (clases 128 y 122) |
| Nim | 2008 | Sintaxis de guion, binario nativo, macros sobre el AST |
| D | 2001 | CTFE, contratos y pruebas en el lenguaje (clase 139) |
Representantes del núcleo: Python · PHP.
| Ficha | Año | Lo que aporta |
|---|---|---|
| Python | 1991 | Legibilidad como decisión de diseño |
| PHP | 1995 | El modelo sin estado por petición (clase 168) |
| Ruby | 1995 | Todo es objeto; bloques; clases abiertas |
| Perl | 1987 | Texto, CPAN, TAP y el modo taint (clase 153) |
| Lua | 1993 | El lenguaje incrustado por excelencia (clase 163) |
| Tcl | 1988 | Todo es cadena; todo es canal; Safe-Tcl |
| R | 1993 | Pensar en vectores; evaluación no estándar |
Representantes del núcleo: JavaScript → TypeScript.
| Ficha | Año | Lo que aporta |
|---|---|---|
| JavaScript | 1995 | Prototipos y bucle de eventos (clases 112 y 134) |
| TypeScript | 2012 | Tipado gradual estructural, con borrado |
| Dart | 2011 | JIT para desarrollar, AOT para publicar (clase 174) |
| Elm | 2012 | Sin excepciones en ejecución; la arquitectura Elm |
| ActionScript | 1998 | Extinto: la dependencia de plataforma (clase 164) |
Representante del núcleo: Java. Todos compilan al mismo bytecode.
| Ficha | Año | Lo que aporta |
|---|---|---|
| Java | 1995 | JIT, recolector generacional, interfaces |
| Kotlin | 2011 | Nulabilidad en el tipo; concurrencia estructurada |
| Scala | 2004 | OO + funcional unificados; colecciones persistentes |
| Groovy | 2003 | El DSL de Gradle y Jenkins (clase 163) |
| Clojure | 2007 | Inmutabilidad total; identidad frente a valor |
Representante del núcleo: C#. Un ABI común para varios lenguajes (clase 157).
| Ficha | Año | Lo que aporta |
|---|---|---|
| C# | 2000 | Genéricos reificados; LINQ; async/await |
| F# | 2005 | Inferencia total; unidades de medida; proveedores de tipos |
| VB.NET | 2002 | El lenguaje intercambiable; la migración forzada |
Sin representante en el núcleo — su influencia llega por Rust, Scala y F#.
| Ficha | Año | Lo que aporta |
|---|---|---|
| Haskell | 1990 | Pereza por defecto; efectos en el tipo (clase 118) |
| OCaml | 1996 | Módulos y functores; ML pragmático (clase 149) |
| F# | 2005 | ML en un ecosistema empresarial |
| Elm | 2012 | La garantía que sale de la renuncia |
Sin representante en el núcleo.
| Ficha | Año | Lo que aporta |
|---|---|---|
| Common Lisp | 1984 | Macros, condiciones con reinicios, imagen viva |
| Scheme | 1975 | Continuaciones; recursión de cola; macros higiénicas |
| Racket | 1995 | Crear lenguajes como biblioteca (clases 122 y 163) |
| Clojure | 2007 | Lisp inmutable sobre la JVM |
| Emacs Lisp | 1985 | Alcance dinámico, en vivo (clase 088) |
| AutoLISP | 1986 | Treinta años de rutinas en despachos de ingeniería |
Representante del núcleo: SQL.
| Ficha | Año | Lo que aporta |
|---|---|---|
| SQL | 1974 | El optimizador decide el cómo (clase 118) |
| Prolog | 1972 | Unificación, vuelta atrás, relaciones reversibles |
| Datalog | 1977 | Termina siempre: la garantía que sale de renunciar |
Sin representante en el núcleo — lo más cercano es el CSP de Go.
| Ficha | Año | Lo que aporta |
|---|---|---|
| Erlang | 1986 | Actores, supervisión y "déjalo fallar" (clase 133) |
| Elixir | 2011 | El mismo modelo con otra puerta de entrada (clase 164) |
Sin representante en el núcleo.
| Ficha | Año | Lo que aporta |
|---|---|---|
| Fortran | 1957 | BLAS/LAPACK; el rendimiento es memoria (clase 152) |
| APL | 1966 | La notación como herramienta de pensamiento |
| J | 1990 | Programación tácita: componer sin nombrar |
| Julia | 2012 | Despacho múltiple con JIT especializante (clase 111) |
| MATLAB | 1984 | Generación de código desde el modelo (clase 155) |
| R | 1993 | Estadística con el vector como unidad |
| Ficha | Año | Lo que aporta |
|---|---|---|
| Swift | 2014 | ARC sin recolector; actores en el tipo (clases 131 y 136) |
| Dart | 2011 | Dos compiladores para un lenguaje |
| Ficha | Año | Lo que aporta |
|---|---|---|
| COBOL | 1959 | Decimal exacto; el lote; el sistema que sobrevive |
| BASIC | 1964 | Accesibilidad como diseño; el GOTO (clase 083) |
| Bash | 1989 | Tuberías: la composición de procesos (clase 161) |
| PowerShell | 2006 | Objetos por la tubería en vez de texto (clase 159) |
| JCL | 1964 | Orquestación con reanudación y recursos (clase 171) |
| Assembler | 1949 | El suelo: registros, pila y ABI (clases 127 y 157) |
Todas responden a las mismas preguntas, y en el mismo orden:
Y todas comparten una regla: cuando un lenguaje no puede cumplir el contrato de la clase 041 —SQL, Datalog, Elm, ActionScript, JCL— se declara la adaptación en lugar de inventar un programa que no existiría (clase 040).
⏮️ Volver al Atlas · 🧟 Los lenguajes que siguen vivos · 📚 Índice de clases