Porque no es lo bastante divertido: por qué fracasan los lenguajes

El éxito de los lenguajes de programación, según algunos, tiene menos que ver con la elegancia técnica y más con factores humanos como la “diversión”, la fortaleza del ecosistema y el respaldo de grandes plataformas o empresas. Los comentaristas rechazan reducirlo todo a la diversión y apuntan en cambio a las salidas laborales, las librerías y herramientas, la cultura de la comunidad y los accidentes históricos que ayudaron a que lenguajes como C, JavaScript, Python y Rust prosperaran mientras opciones más refinadas o expresivas (Lisp, Haskell, Scala, Objective-C) permanecían en nichos. Se trazan varios paralelos con la programación asistida por IA, que se ve como rápida y cómoda pero a menudo generadora de código mediocre, reforzando la idea de que las herramientas ganan por practicidad e integración más que por sofisticación pura.

IA y generación de código

  • Varios comentarios relacionan la analogía del artículo de “sampler vs músico” con la IA: la IA puede generar código rápidamente, pero carece de “alma” y de criterio de diseño.
  • Algunos sostienen que la IA es “muy buena produciendo código”; otros discrepan con fuerza, y reportan resultados inflados, mal factorizados y difíciles de orientar hacia diseños elegantes o idiomáticos.
  • El consenso: el código de los LLM es rápido y cómodo para scripts desechables o componentes no críticos, pero todavía no es de forma consistente “bueno” ni sólido desde el punto de vista arquitectónico.

Por qué los lenguajes triunfan o fracasan

  • Muchos dicen que el éxito rara vez depende solo de la elegancia del lenguaje; encajan más el ajuste a la plataforma, el momento y el respaldo.
  • El estatus de “nativo de una plataforma” (p. ej., JS en navegadores, Swift para Apple, Java para JVM) se cita repetidamente como decisivo.
  • El ecosistema (stdlib, librerías, herramientas, documentación, mercado laboral) se considera más importante que la sintaxis central.

Plataforma, ecosistema y política

  • Se considera crucial el impulso del proveedor: Apple para Swift, Microsoft para C#/VB, Mozilla para Rust.
  • Algunos argumentan que la popularidad de un lenguaje es muy política: dominada por comunidades angloparlantes y promotores del “grupo interno”.
  • La disponibilidad comercial frente a la libre (p. ej., ColdFusion frente a PHP) se cita como factor que moldeó la adopción temprana de lenguajes web.

Debates sobre lenguajes concretos

  • Objective‑C vs Swift: hay desacuerdo sobre si ObjC “fracasó” o si simplemente Apple lo dejó de lado por política de producto, no por falta de diversión.
  • JavaScript vs Python: hay desacuerdo sobre cuál es “boom” y cuál es “bust”; JS gana por su ubicuidad en el navegador, Python por su ecosistema y legibilidad.
  • Scala: algunos culpan a una comunidad elitista, a herramientas lentas y a una reescritura larga del compilador que no resolvió los puntos de dolor principales.
  • Lisp: elogiado por REPL, macros y diversión; criticado por ecosistemas débiles y fragmentados.
  • C/C++: a algunos les disgusta por su complejidad, pero se reconoce su rendimiento y su legado dominante.
  • Kotlin vs Java: Kotlin se ve como más agradable, pero incapaz hasta ahora de desplazar la posición arraigada de Java.

“Diversión” vs practicidad

  • Varios comentaristas dicen que la “diversión” es subjetiva e insuficiente como predictor del éxito.
  • Los lenguajes “aburridos” o rígidos (Go, Java, C) pueden prosperar porque son predecibles, están respaldados y son “apuestas seguras”.
  • Algunos mantenedores contratan explícitamente a personas a las que les gusta programar; otros enfatizan que los trabajos priorizan la estabilidad, no la alegría.

Herramientas, REPLs y experiencia de desarrollo

  • Se considera que los buenos gestores de paquetes, herramientas de compilación y GUIs multiplataforma impulsan mucho la adopción.
  • Los flujos de trabajo guiados por REPL (Lisp y otros) se contrastan con flujos centrados en pruebas unitarias; se ven como complementarios, no intercambiables.
  • Rust se describe como sintácticamente “poco divertido”, pero redimido por herramientas excelentes (cargo, crates).