En algún momento de tu carrera como programador, ya sea que estés comenzando o tengas años de experiencia, seguramente te has preguntado: ¿por qué hay tantos lenguajes de programación? El mundo sería más fácil con un solo lenguaje. No tendrías que tomar tantos cursos, la carrera sería más corta, todas las aplicaciones serían compatibles y todos los programadores dormirían mejor por las noches.
Pero lo cierto es que no hay decenas, ni siquiera cientos de lenguajes de programación. ¡Son miles! Y eso genera las preguntas clásicas como: ¿qué lenguaje debo aprender primero? ¿Qué lenguaje es el mejor? ¿Qué lenguaje paga más? Y otras por el estilo.
Hoy te voy a explicar cuál es la verdadera razón de que existan tantos lenguajes mientras hacemos un repaso histórico desde el primer lenguaje de programación hasta nuestros días.
Porque estás en EDteam y tú sabes que en español, #NadieExplicaMejor.
1. ¿Qué es un lenguaje de programación?
Empecemos por el principio:
Un lenguaje de programación es un lenguaje inventado por los seres humanos para darle instrucciones a una computadora sin tener que usar código binario (ceros y unos).
Sucede que el único “lenguaje” que entienden las computadoras es el de ceros y unos o código binario, por eso se le conoce también como lenguaje máquina. Ninguna computadora entiende ni Python, ni C++, ni TypeScript, ni Java. Ninguna.
Quienes entienden Python, C++ o cualquier lenguaje son los seres humanos. Porque recuerda que los lenguajes fueron creados pensando en los humanos, para evitarnos el estrés de escribir ceros y unos. Por cierto, si quieres saber por qué las computadoras solo entienden ceros y unos. Puedes ver este video en EDteam.
Entonces, tenemos que diferenciar “lenguaje de programación” que está pensado para ser entendido por los humanos y “lenguaje máquina” que es el binario que entienden las computadoras. Por lo tanto, todo lenguaje de programación debe ser convertido a binario para que la computadora lo entienda.
Existen dos formas de convertir un lenguaje de programación a binario: por compilación o por interpretación. Por eso los lenguajes se clasifican en compilados e interpretados. Aunque ese es tema para otro video.
Con el mensaje que te debes quedar es que un lenguaje de programación es una creación humana para simplificarnos la tarea de programar, ya que nos evita tener que escribir ceros y unos.
2. Los primeros lenguajes de programación
Ahora que sabes qué es un lenguaje de programación, es más fácil responder a la pregunta de por qué hay tantos. La respuesta es muy sencilla: alguien vio un lenguaje y pensó: “yo lo puedo hacer mejor”. Y zas, que crea un lenguaje nuevo. Obviamente, no es tan sencillo, hay detalles técnicos y recursos implicados, pero en esencia es eso. Los lenguajes de programación son creaciones humanas y, por lo tanto, es imposible que todos los humanos nos pongamos de acuerdo para usar un único lenguaje.
Incluso en el hipotético caso de que nos pongamos de acuerdo por un lenguaje, nunca faltaría algún disconforme planificando una rebelión (o sea un nuevo lenguaje).
¿No me crees? Hagamos un repaso histórico.
El primer lenguaje de programación fue ensamblador, que se creó en la década de 1950 con las primeras computadoras. Estas computadoras solo podían recibir instrucciones en código binario usando tarjetas perforadas o cintas de papel y era un trabajo bastante tedioso. Así que se creó el lenguaje ensamblador, que es una serie de instrucciones específicas para la arquitectura de cada computadora. En términos sencillos, ensamblador es un conjunto de abreviaturas para no escribir binario.
Sin embargo, aunque escribir en ensamblador era más rápido que hacerlo en binario, seguía siendo lento y tedioso y muchos programadores de la época estaban cansados de él y se preguntaron: ¿por qué en lugar de darle instrucciones a la computadora en un lenguaje raro e ilegible, no lo hacemos en inglés? Parecía una propuesta ridícula, ¿hablarle en inglés a la computadora, como si fuera una persona? Pero fue Grace Hopper una de las primeras impulsoras de esta idea y escribió el primer compilador de la historia. Es decir, un software que podía traducir esas instrucciones en inglés a código máquina o binario.
Gracias a ese primer compilador se crearon los primeros lenguajes de alto nivel. Es decir, lenguajes que no requieren especificar tanto detalle de la arquitectura de la computadora como ensamblador, que es de bajo nivel.
Los primeros lenguajes de alto nivel fueron Fortran, lanzado en 1957, y Cobol, lanzado en 1959. Fortran se usaba para cálculos matemáticos y Cobol para contabilidad. Y al día de hoy, ambos lenguajes se siguen usando. De hecho, Cobol, es de los más importantes en el sector financiero.
3. C y C++ los papás de los lenguajes modernos
Podemos dividir al software en dos grandes tipos: software de sistema y software de aplicación. El software de sistema es capaz de comunicarse y gestionar recursos de hardware de la computadora y el ejemplo más claro es un sistema operativo como Unix, MacOS, Windows o cualquier sabor de Linux.
El software de aplicación tiene una aplicación o uso específico y se ejecuta encima de un sistema operativo. Por ejemplo: WhatsApp es un software de aplicación porque tiene una sola aplicación: comunicarse. De ahí su nombre: aplicación, no aplicativo, cada vez que dices aplicativo los verdaderos programadores sentimos náuseas.
Para 1970, existían lenguajes para crear aplicaciones (como Fortran o Cobol), pero para programar las tripas de una computadora, o sea, desarrollar sistemas, manejar el hardware, el único lenguaje seguía siendo ensamblador.
Hasta 1971, cuando dos ingenieros de Bell Las: Dennis Ritchie y Ken Thompson crearon el lenguaje C para reescribir un pequeño sistema operativo que habían creado y que se llamaba UNIX. Sin saber que sería el sistema operativo más importante de la historia. La revolución de C fue que podías mover el sistema operativo de una computadora a otra en lugar de tener que reescribirlo desde cero para cada computadora. Como se hacía hasta entonces en ensamblador. Así que C nació para mejorar a ensamblador. Si quieres saber más de C y de UNIX, puedes ver este video en EDteam.
Pero C no era perfecto, así que 8 años después, un programador llamado Bjarne Stroustrup pensó que a C le faltaba programación orientada a objetos, un paradigma que usaban otros lenguajes como Simula o Smalltalk, así que creó un nuevo lenguaje al que llamó “C con clases” en 1979, y que se renombró a C++ en 1983. Así que C++ nació para mejorar a C.
4. Los lenguajes derivados de C y C++ en los 90
Pero el ser humano siempre está buscando nuevas formas de complicarse la vida (o de hacerla más cómoda, depende del ángulo del que lo mires), así que en 1989 un programador holandés llamado Guido Van Rossum que trabajaba con C, estaba aburrido de escribir siempre las mismas instrucciones en C así que escribió un pequeño script para automatizar esas tareas repetitivas y lo llamó Python.
No tenía idea que acababa de crear el lenguaje más usado del mundo en la actualidad. Y Python fue creado para mejorar un aspecto de C, la automatización. Si quieres saber más de Python y su historia puedes ir a ver este video en EDteam.
Unos años después, en 1994, James Gosling, que trabajaba en Sun Microsystems, estaba trabajando en un proyecto secreto con un equipo también secreto que tenía como nombre clave “Green team”. Este proyecto buscaba crear un software que funcione en cualquier dispositivo de hardware (inicialmente querían crear un control de TV universal porque la televisión era un negocio muy rentable) y lo empezaron a programar con C++. Sin embargo, sintieron que este lenguaje no era eficiente para lo que buscaban, así que crearon… ¡Adivinaste! Un nuevo lenguaje al que llamaron Java. Seguro lo conoces y seguro lloraste más por Java que por tu ex.
En esos años, la web explotó y Java se empezó a usar rápidamente en la web. Tal fue su éxito que un año después nació un lenguaje que tomó prestado el nombre y se bautizó como “JavaScript” para aprovecharse de su fama. Y hasta hoy, existe gente confundiendo Java con JavaScript, así que el truco de marketing les salió perfecto. Si quieres saber más de la historia de Java, mira este video en EDteam.
Pero ahí no acabó todo, porque ante el éxito de Java, Microsoft no se iba a quedar de brazos cruzados. Tenía miedo de que este lenguaje que funcionaba en cualquier hardware y cualquier sistema operativo les quite relevancia, así que copiaron, perdón, crearon su alternativa a Java. Para eso contrataron a Anders Hejlsberg, el genio que había desarrollado Turbo Pascal y Delphi, y con él crearon el Java de Microsoft, al que llamaron C# en el 2000.
C# tomó “prestadas” muchas cosas de Java y su símbolo representa cuatro veces el símbolo +, lo que da a entender que llegó para mejorar a C++. Y si quieres saber más de C#, mira este video en EDteam.
5. Los nuevos lenguajes
Años después, se repitió la misma historia, ya sabes, alguien pensó que lo podía hacer mejor y creó un nuevo lenguaje. Por ejemplo, en 2016 los ingenieros de Jetbrains, una empresa checa que se especializa en crear IDEs (si no sabes que es un IDE tienes que mirar este video) usaba mucho Java en sus productos, pero estaban aburridos de Java y querían algo menos verboso y más eficiente. Pero que a la vez sea compatible con Java (es decir, que ambos lenguajes puedan funcionar juntos en el mismo proyecto) y así nació Kotlin.
Y al año siguiente, Google decidió apadrinar Kotlin como lenguaje oficial para desarrollar aplicaciones Android.
Y aunque existían (y existen) muchos lenguajes para desarrollar aplicaciones (como Kotlin, Java, C#, Python, etc.) para el desarrollo de sistemas, es decir, para controlar el hardware, las tripas de la computadora, solo existían dos lenguajes inevitables: C y C++. Pero ya sabes como termina esta historia, un buen día de 2006, Graydon Hoare, ingeniero de Mozilla que trabajaba en Firefox se dio cuenta que estos lenguajes tenían bastantes problemas en la gestión de la memoria y pensó: “yo lo puedo hacer mejor”. Y así nació Rust, un lenguaje que es tan robusto que el kernel de Linux, que siempre se había desarrollado con ensamblador y C, ahora usa también Rust. Y si quieres saber más de Rust, tienes que ver este video en EDteam.
¿Y la historia terminó con Rust? ¡No! Porque en 2022 unos ingenieros de Google presentaron Carbon, un lenguaje experimental para competir contra Rust y ser otra alternativa a C y C++. Carbon es un lenguaje aún en etapa temprana y no sabemos si crecerá hasta ser una alternativa importante o no. Pero demuestra el punto de este artículo, de que siempre habrá alguien que piense: “yo lo puedo hacer mejor” y nueve meses después (o un poquito más) trae al mundo un nuevo lenguaje de programación.
En este blog he tomado una rama muy específica de la historia de la programación, que son los lenguajes derivados de C y C++ (y aun así he dejado varios lenguajes por fuera). La cantidad de ramas y subramas en las que se dividen los lenguajes de programación es tan grande que podemos hacer una serie de blogs con la historia de la programación. Deja tu comentario si te gustarían esos blogs.
Por otro lado, aunque existen muchos lenguajes no te asustes, porque si entendiste este blog, también entenderás todos nuestros cursos de programación e inteligencia artificial en EDteam. Porque si estás cansado de cursos desactualizados y profesores que no explican bien porque están más preocupados por los likes, ven a EDteam, la escuela online más obsesionada con la calidad de los cursos. Porque la programación no es difícil si te enseñan bien. Y en español, tu sabes que #NadieExplicaMejor que EDteam.
Y si no sabías por qué existen tantos lenguajes de programación, hoy #LoAprendisteEnEDteam.
¿Quieres ampliar esta información? Ve nuestro video de Youtube.