Razones por las cuales los lenguajes de programación se vuelven populares
20-08-2025
Me encanta entender por qué las cosas son como son. Y hace unas semanas me he encontré una de esas charlas que traen un poco de historia y explicaciones para intentar responder, entre otras preguntas, ¿Por qué son populares los lenguajes de programación actuales como Python, JavaScript, Java, C#...? En este artículo he hecho un extracto para compartirlo. En resumen, es un efecto multimodal, veamos cada uno de estos de forma resumida.
Construyeron o se asocian a una aplicación/framework revolucionario
Hay lenguajes que se vuelven populares porque están asociados a aplicaciones que resuelven un problema significativo y/o satisface una gran demanda. Por tanto, la trayectoria de estas aplicaciones y estas aplicaciones/frameworks queda ligada al lenguaje porque este ofrece la forma más rápida, fácil o, en su momento, la única viable para utilizar la aplicación deseada. No se trata de que el lenguaje sea inherentemente superior o más atractivo, sino de que es la puerta de entrada a algo que los usuarios realmente necesitan o quieren.
Ejemplos de lo anterior son:
- VisiCalc para el Apple II
- Ruby on Rails para Ruby
- PHP para HTML dinámico, WordPress y Drupal
- C para la programación de sistemas:*
Tienen exclusividad en una plataforma
Un lenguaje se convierte en la forma preferida o, a menudo, la única viable para desarrollar en un ecosistema de software o hardware muy grande y dominante. La inmensidad de la plataforma en sí misma es suficiente para impulsar el lenguaje a la cima, independientemente de su diseño intrínseco (ya sea funcional, imperativo, u orientado a objetos).
Podemos ver esto manifestado con
- Objective-C y Swift para Apple, la pura escala de la plataforma Apple garantiza su popularidad
- JavaScript para la web. Se convirtió en el estándar de facto.
- C# para Microsoft Windows. Su éxito se debió a la exclusividad de las herramientas de Microsoft en su plataforma.
Ofrecen una adopción rápida y/o reutilización de código existente
Hay lenguajes que se han creado con vistas a atraer o ofrecer a comunidades una alternativa a su lenguaje actual de una manera que sea fácil y/o que les permita no tener que hacer una reescritura de sus proyectos. Todo con el argumento de que al hacer la migración tendrán grandes beneficios. En resumen, estos lenguajes tratan de aprovechar la familiaridad de las personas desarrolladoras (reducción del coste de aprendizaje) y reducir las barreras de entrada.
Veamos cómo algunos lenguajes exitosos han utilizado esta estrategia:
• CoffeeScript: Uno de los primeros lenguajes en prosperar con esta filosofía.
- Su eslogan era "es solo JavaScript".
- Prometía que, si ya eras programador de JavaScript, podías aprenderlo en aproximadamente media hora.
- Ofrecía scripts para convertir automáticamente tu código JavaScript existente a CoffeeScript, lo que minimizaba drásticamente el esfuerzo de migración y reforzaba la idea de que era "solo" JavaScript.
- Esto fue suficiente para impulsarlo a ser el 11º lenguaje más popular en GitHub en su apogeo.
• TypeScript: Un ejemplo fuerte de esta estrategia.
- Es un superconjunto estricto de JavaScript, lo que significa que el código JavaScript válido es, por definición, también código TypeScript válido.
- La migración puede ser tan simple como renombrar un archivo .js a .ts, y "se supone que simplemente funciona". A partir de ahí, los desarrolladores pueden añadir incrementalmente las características de TypeScript.
- Ofrece beneficios (como el tipado estático) con un costo percibido mínimo ("solo tienes que renombrar el archivo"), lo que ha llevado a que mucha gente lo adopte.
• C++: El primer gran éxito de esta estrategia.
- Era un "casi superconjunto" de C.
- Permitió a los programadores de C tomar sus archivos
.c
, renombrarlos a.cpp
y comenzar a acceder a los beneficios adicionales de C++. Esto facilitó una transición y adopción exitosa.
• Kotlin: Un ejemplo moderno que, aunque es un lenguaje "sustancialmente diferente" de Java, capitaliza la misma idea.
- Enfatiza su "interoperabilidad del 100% con las bases de código Java existentes" y la disponibilidad de scripts para convertir Java a Kotlin.
- Esto reduce el esfuerzo de migración y el riesgo percibido para las empresas y desarrolladores con grandes bases de código Java, contribuyendo a su gran éxito.
Marketing
Hay lenguajes donde hubo detrás inversiones monetarias masivas como en el caso de Java por parte de Sun Microsystems invirtió 500 millones de dólares en una nueva campaña de marketing solo para Java. Con ello obtuvo una omnipresencia en diversos medios que hicieron que fuera un elemento muy reconocible por parte de las personas que desarrollan.
Por otro lado, JavaScript es el resultado de aprovechar la ola de popularidad de Java. Originalmente concebido como un Lisp funcional basado en Scheme, fue forzado por Mozilla a adoptar una sintaxis y un enfoque orientado a objetos similares a Java**. Incluso su nombre contiene "Java"...
Otros factores secundarios
• Mercado Laboral Los desarrolladores dudan en aprender un lenguaje si no hay trabajos disponibles que lo requieran, y los empleadores dudan en adoptar un lenguaje si no pueden encontrar desarrolladores para él. Este refuerza la popularidad de los lenguajes que ya son dominantes, ya que el gran volumen de trabajos existentes valida su aprendizaje, y la oferta de desarrolladores refuerza su uso por parte de las empresas.
• Comunidad La comunidad que rodea a un lenguaje puede ser un activo importante o un pasivo. Una comunidad acogedora y colaborativa puede atraer y retener a desarrolladores. Además, de lo que genera la comunidad. Un ejemplo de esto último es Python con diferentes ámbitos donde la comunidad tiene casi que una herramienta para cada caso de uso. Y donde más ha explotado es en el ámbito de la inteligencia artificial.
• Rendimiento Se considera una preocupación secundaria que influye más en los dominios de uso de un lenguaje que en su popularidad general. Para ciertas aplicaciones, como la programación de sistemas (sistemas operativos, utilidades de bajo nivel), es crítico tener control sobre la memoria, lo que favorece lenguajes como C, C++ y, más recientemente, Rust. Sin embargo, para una gran cantidad de dominios, el rendimiento absoluto no es el factor decisivo. Python, por ejemplo, es un lenguaje "perfectamente aceptable" para servidores de backend, incluso si no es el más rápido, porque el rendimiento suele estar limitado por factores externos como la red o la base de datos.
Conclusiones
La popularidad de los lenguajes de programación no depende exclusivamente de sus características técnicas o su superioridad inherente, sino que está fuertemente influenciada por factores externos como la asociación con aplicaciones o frameworks revolucionarios, la exclusividad en plataformas dominantes, y la facilidad para la adopción rápida y reutilización de código existente. Además, el marketing estratégico, el mercado laboral, y la comunidad de desarrolladores juegan un papel fundamental en consolidar y mantener su relevancia. Aunque el rendimiento es un aspecto importante en ciertos dominios específicos, en la mayoría de los casos no es el factor decisivo para la popularidad general. Por tanto, la adopción de un lenguaje suele ser un equilibrio entre necesidades prácticas, ecosistemas y estrategias sociales y comerciales.