opinión 2025-05-20
7 minutos de lectura

¿Por qué mi lenguaje no es popular?

imagen destacada

En el proyecto de Programando Otra Historia publicamos hace tiempo un vídeo sobre Ada y nos hizo pensar, ¿por qué un lenguaje tan bien valorado no es más popular? ¿por qué no lo usa más gente?

Indagando un poco topé con este comentario en Reddit que responde a la pregunta (en inglés) ¿Se convertirá algún día Ada en un lenguaje común? A lo que el comentario le responde una serie de parámetros que deberían darse para que esto sea así.

Me ha parecido muy interesante cada uno de los puntos, por lo que los comento brevemente y después abro sección para cada uno de ellos:

  • Momentum o inercia. También podemos traducirlo como tracción.
  • Entorno o ecosistema.
  • Fuerza laboral disponible o profesionales que lo usan.
  • Concordancia de valores o si los valores del lenguaje casan con los valores de los programadores.
  • Comunidad.
  • Disponibilidad o facilidad para adquirirlo en base a licencia y precio.

Vale, ahora vamos a expandir un poco más cada uno de los puntos y pondremos de ejemplo Ada como lenguaje, pero igualmente podrías utilizar otro lenguaje que no se haya extendido masivamente para intentar explicar a través de estos puntos el porqué.

Momentum

La tracción del lenguaje es muy importante, hay muchos proyectos que arrancan fuerte, prometen mucho y de repente tienen un bajón considerable.

En este caso, por ejemplo, Rust tuvo sus problemas debido a los cambios hasta su versión 1.0 y le hizo perder mucha tracción. Elixir también tuvo sus problemas en versiones muy iniciales por su necesidad de fijar qué podía permitirse de Ruby y qué de Erlang así como qué sería más coherente dado el entorno: BEAM.

En el caso de Ada, el hecho de ser un lenguaje de la década de 1980 y no haber sido adoptado masivamente, solo en cierto tipo de empresas o ciertas áreas de los gobiernos hizo su adopción pasar muy desapercibida. De hecho, no muchos conocen el lenguaje y a quienes le suenan puede ser más por el personaje (Ada Lovelace) más que por el lenguaje en sí.

Crear una inercia y tracción en su adopción ahora se ve mucho más complejo porque muchos consideran que un lenguaje de la década de 1980 no puede aportar nada nuevo o es muy antiguo para ser tenido en cuenta.

Entorno

Mientras que hay disponibles compiladores libres y gratuitos como GNAT FSF, también existe en proyecto GNAT Pro que es de pago y es al que la gente lleva primero cuando busca sobre el lenguaje, como veremos en el último punto, esto no es nada positivo.

Pero centrémonos en el entorno. El entorno libre puede instalarse en GNU/Linux de forma muy fácil porque es GPL (libre) y gratuito. Tiene versiones para muchas plataformas pero al revisar el procedimiento de instalación se ve claramente que no es tan fácil de instalar si usas Windows o macOS. De hecho en entornos como Homebrew, GNAT no está disponible.

Parece que la forma más fácil de instalar y usar Ada es instalando GNAT Pro, la versión de pago. Nada nuevo.

Este es un gran problema no solo de Ada sino también de otros muchos lenguajes de programación que hacen difícil su instalación y uso en según qué sistemas operativos. Ya no hablar de obtener herramientas concretas como depuradores, comprobadores de sintaxis o generadores de paquetes para puesta en producción entre otras utilidades deseables en entornos profesionales.

Fuerza laboral disponible

El principal acierto de Java fue darse a conocer en la Universidad. Otorgar sus sistemas de forma gratuita, realizar charlas, talleres o incluso la publicación de una biblioteca extensa de libros tanto gratuitos como de pago pero a precios asequibles acercó mucho el lenguaje a un público joven que salía de la facultad y comenzaba a trabajar en sitios donde Java podía encajar.

Ahora veamos el caso de Ada. Fue un lenguaje impuesto en ciertas empresas donde fue adoptado, en ciertas áreas del gobierno y no tuvo mucho más movimiento lejos de esos círculos. Su poca accesibilidad con respecto al sector docente le pasó factura.

COBOL es un caso curioso porque es un lenguaje que fue construido por comité como Ada, pero la diferencia fue que Grace Hopper se desvivió para que fuese adoptado en cada vez más sitios hasta el punto que sin tener una clara estrategia de marketing como tuvo en su momento Sun Microsystems, tomó pasos similares y consiguió en las décadas de 1960 y 1970 principalmente, que Cobol fuese un lenguaje muy extendido y de fácil adopción para no programadores que debían lidiar con máquinas utilizando un lenguaje de programación.

Valores del lenguaje

Es innegable que ciertos lenguajes tienen valores muy específicos:

  • Java: compila una vez y ejecuta para siempre. Reducción en mantenibilidad.
  • Go: nada cambiará en 1.x y todo será siempre compatible en las versiones mayores. Reducción de mantenibilidad.
  • Erlang: programas que nunca se detienen. Incrementa la disponibilidad.
  • C: programación de bajo nivel con código de alto nivel.
  • COBOL: hacer fácil la programación de negocio para gente de negocio.

Entonces, los valores definen para qué se crea un lenguaje y cómo evolucionará. ¿Podrían cambiar estos valores? Es posible, pero en casos concretos donde cambian estos valores, normalmente cambia también el nombre del lenguaje. Por ese motivo Pascal no evolucionó con módulos, sino que se creó Modula, Perl no evolucionó a Perl 6 sino que se creó Raku o en casos empresariales:

  • No se intenta cambiar C++ desde Google sino que se está creando Carbon
  • No se intenta cambiar PHP desde Facebook sino que se creó Hack
  • No se intenta cambiar JavaScript desde Microsoft sino que se creó TypeScript

Cuando los valores cambian, el lenguaje es diferente. ¿Cuáles son los valores de Ada? Crear software de misión crítica que no falle. ¿Te suena? Rust tiene los mismos valores solo que no agregó al software que crea la coletilla de "misión crítica", lo que hace que mucha gente cuestione si su software es de misión crítica o no y realmente, no les importa que su software falle un poco si se puede crear de forma más rápida en otro lenguaje.

Comunidad

La comunidad es la gente que hace posible el software. Hace poco, un cliente me comentó que dejaba de utilizar rethinkdb porque es un proyecto muerto. En el blog de Altenwald publiqué un artículo llamado cómo elegir una dependencia también indicando que un factor clave es ver cuánta gente (comunidad) hay manteniendo de alguna forma ese software.

La comunidad no solo hace que el software mejore y se eliminen errores, sirve para resolver dudas sobre el funcionamiento del software, generar casos de uso, documentación, cursos y un largo etcétera. Tener una comunidad fuerte detrás es importante.

Pero también que la comunidad sea abierta. Es decir, hay comunidades algo elitistas donde entrar es difícil y cualquier pregunta es cuestionada y respondida de forma agresiva o despectiva. Eso no suele ser del agrado de nadie. Una comunidad poco amigable o cerrada puede ser origen de abandono de personas que estaban dispuestas en principio a pertenecer la comunidad.

En el caso de Ada, según el comentario de Reddit, la comunidad no es muy cerrada de mente, muy dogmática y muy crítica. Como decíamos, no muy agradable.

Disponibilidad

Llegamos al último punto. La disponibilidad. Es obvio que lenguajes como Pascal que tienen proyectos cerrados como Delphi o proyectos abiertos y muy recomendables como Lazarus, es un ejemplo bastante bueno de una alta disponibilidad, obviamente hay otros ejemplos claros como Python, C o Java. Instalar estos entornos es muy fácil y gratuito.

Sin embargo, en el caso de Ada, parece que la empresa AdaCore está al cargo y está más preocupada de crear clientes que dar a conocer su lenguaje. Mientras que otras comunidades como la de Elixir, Ruby o Python, al buscar sus páginas aparecen en las primeras posiciones páginas donde se indica fácilmente cómo conseguir estos entornos resultando fácil su instalación. En el caso de Ada no es así.

Ada no está fácilmente disponible a menos que tu entorno concreto sea GNU/Linux y aún así, no dispones de un editor o entorno concreto. Es decir, puedes utilizar editores genéricos como VSCode o SublimeText o cualquier otro en el que puedas encontrar pero aún teniendo disponibles extensiones para Ada, dejan como tarea para ti instalar el compilador y tener todo disponible para que funcione.

Dicho de otra forma, no, Ada no es muy accesible.

Conclusiones

Aunque estos puntos no determinan que un lenguaje pueda llegar a ser un lenguaje común y muy conocido entre los programadores, sí que son buenos puntos de partida porque fallar en tan solo uno de ellos sí que es indicativo de que nunca lo será.

Si estás en una comunidad y tenéis pensado potenciar vuestro lenguaje de programación favorito, si es que aún no es un lenguaje muy conocido, podéis hacer una lista de cómo evitar caer en el incumplimiento de cada uno de estos puntos y tendréis más cerca la llegada de muchos más programadores.

Manuel Rubio

Manuel Rubio

Programación Concurrente & Erlanger