Desde la década de 1950, los informáticos han ideado miles de lenguajes de programación. Muchos son oscuros, tal vez creados para un doctorado. tesis y nunca más se supo desde entonces. Otros se hicieron populares por un tiempo y luego se desvanecieron debido a la falta de soporte o porque estaban limitados a un sistema informático en particular. Algunas son variantes de lenguajes existentes, agregando nuevas características como paralelismo: la capacidad de ejecutar muchas partes de un programa en diferentes computadoras en paralelo.
Leer más sobre ¿Qué es un lenguaje de programación?
Comparar lenguajes de programación
Hay varias formas de comparar los lenguajes de computadora, pero por simplicidad, los compararemos por método de compilación y nivel de abstracción.
Compilando al Código de Máquina
Algunos lenguajes requieren que los programas se transformen directamente en Código de máquina, las instrucciones que una CPU entiende directamente. Este proceso de transformación se llama Compilacion. El lenguaje ensamblador, C, C ++ y Pascal son lenguajes compilados.
Lenguas Interpretadas
Otros idiomas son Interpretado como Basic, Actionscript y Javascript, o una mezcla de ambos compilados en un lenguaje intermedio, esto incluye Java y C #.
Un lenguaje interpretado se procesa en tiempo de ejecución. Cada línea se lee, analiza y ejecuta. Tener que reprocesar una línea cada vez en un bucle es lo que hace que los lenguajes interpretados sean tan lentos. Esta sobrecarga significa que el código interpretado se ejecuta entre 5 y 10 veces más lento que el código compilado. Los lenguajes interpretados como Basic o JavaScript son los más lentos. Su ventaja es que no es necesario volver a compilar después de los cambios y eso es útil cuando estás aprendiendo a programar.
Porque compilado programas Casi siempre se ejecuta más rápido de lo que se interpreta, los lenguajes como C y C ++ tienden a ser los más populares para escribir juegos. Java y C # compilan en un lenguaje interpretado que es muy eficiente. Debido a que la máquina virtual que interpreta Java y el marco .NET que ejecuta C # están muy optimizados, se afirma que las aplicaciones en esos lenguajes son tan rápidas, si no más rápidas, que C ++ compilado.
Nivel de abstracción
La otra forma de comparar idiomas es el nivel de abstracción. Esto indica qué tan cerca está un idioma en particular del hardware. El código de máquina es el nivel más bajo, con el lenguaje ensamblador justo encima. C ++ es más alto que C porque C ++ ofrece una mayor abstracción. Java y C # son más altos que C ++ porque se compilan en un lenguaje intermedio llamado bytecode.
Cómo se comparan los idiomas
Idiomas compilados rápidamente
- Lenguaje ensamblador
- C
- C ++
- Pascal
- C#
- Java
Razonablemente rápido interpretado
- Perl
- PHP
Lento interpretado
- JavaScript
- ActionScript
- Básico
Código de máquina son las instrucciones que ejecuta una CPU. Es lo único que una CPU puede entender y ejecutar. Los idiomas interpretados necesitan una aplicación llamada Interprete que lee cada línea del código fuente del programa y luego la 'ejecuta'.
Interpretar es más fácil
Es muy fácil detener, cambiar y volver a ejecutar aplicaciones escritas en un lenguaje interpretado y es por eso que son populares para aprender programación. No se necesita una etapa de compilación. La compilación puede ser un proceso bastante lento. Una gran aplicación de Visual C ++ puede tardar de minutos a horas en compilarse, dependiendo de la cantidad de código que se debe reconstruir y la velocidad de la memoria y la CPU.
Cuando aparecieron las computadoras por primera vez
Cuando las computadoras se hicieron populares por primera vez en la década de 1950, los programas se escribieron en código máquina, ya que no había otra manera. Los programadores tuvieron que mover físicamente los interruptores para ingresar valores. Esta es una forma tan tediosa y lenta de crear una aplicación que se tuvieron que crear lenguajes informáticos de nivel superior.
Ensamblador: ¡Rápido para correr, lento para escribir!
El lenguaje ensamblador es la versión legible de Machine Code y tiene este aspecto
Mov A, $ 45
Debido a que está vinculado a una CPU en particular o una familia de CPU relacionadas, el lenguaje ensamblador no es muy portátil y requiere mucho tiempo para aprender y escribir. Lenguajes como C han reducido la necesidad de programación en lenguaje ensamblador, excepto cuando la RAM es limitada o se necesita un código de tiempo crítico. Esto suele estar en el código del núcleo en el corazón de un sistema operativo o en un controlador de tarjeta de video.
El lenguaje ensamblador es el nivel de código más bajo
El lenguaje ensamblador es de muy bajo nivel; la mayor parte del código solo mueve valores entre los registros de la CPU y la memoria. Si está escribiendo un paquete de nómina que quiere pensar en términos de salarios y deducciones fiscales, no Registre A en la ubicación de memoria XYZ. Es por eso que los lenguajes de nivel superior como C ++, C# o Java son más productivos El programador puede pensar en términos del dominio del problema (salarios, deducciones y acumulaciones), no en el dominio del hardware (registros, memoria e instrucciones).
Programación de sistemas con C
C fue ideado a principios de la década de 1970 por Dennis Ritchie. Se puede considerar como una herramienta de propósito general: muy útil y poderosa, pero muy fácil de dejar pasar por los errores que pueden hacer que los sistemas sean inseguros. C es un lenguaje de bajo nivel y se ha descrito como lenguaje ensamblador portátil. La sintaxis de muchos lenguajes de secuencias de comandos se basa en C, por ejemplo, JavaScript, PHP y ActionScript.
Perl: sitios web y utilidades
Muy popular en el mundo Linux, Perl fue uno de los primeros idiomas web y sigue siendo muy popular hoy en día. Para hacer una programación "rápida y sucia" en la web, no tiene rival y maneja muchos sitios web. Sin embargo, ha sido algo eclipsado por PHP como lenguaje de script web.
Codificación de sitios web con PHP
PHP fue diseñado como un lenguaje para servidores web y es muy popular en conjunto con Linux, Apache, MySql y PHP o LAMP para abreviar. Se interpreta, pero se precompila para que el código se ejecute razonablemente rápido. Se puede ejecutar en computadoras de escritorio, pero no se usa tanto para desarrollar aplicaciones de escritorio. Basado en la sintaxis de C, también incluye Objetos y clases.
Pascal fue ideado como un lenguaje de enseñanza unos años antes de C, pero estaba muy limitado con una mala gestión de cadenas y archivos. Varios fabricantes ampliaron el lenguaje, pero no hubo un líder general hasta que apareció Turbo Pascal de Borland (para Dos) y Delphi (para Windows). Estas fueron implementaciones poderosas que agregaron suficiente funcionalidad para que sean adecuadas para el desarrollo comercial. Sin embargo, Borland se enfrentó al Microsoft mucho más grande y perdió la batalla.
C ++: ¡Un lenguaje con clase!
Las clases C ++ o C plus, como se conocía originalmente, se produjeron unos diez años después de C e introdujeron con éxito la Programación Orientada a Objetos en C, así como características como excepciones y plantillas. Aprender todo C ++ es una gran tarea: es, con mucho, el lenguaje de programación más complicado aquí, pero una vez que lo haya dominado, no tendrá dificultades con ningún otro lenguaje.
C #: la gran apuesta de Microsoft
C # fue creado por DelphiEl arquitecto Anders Hejlsberg después de mudarse a Microsoft y los desarrolladores de Delphi se sentirán como en casa con características como los formularios de Windows.
La sintaxis de C # es muy similar a la de Java, lo cual no es sorprendente ya que Hejlsberg también trabajó en J ++ después de mudarse a Microsoft. Aprenda C # y estará bien encaminado para conocer Java. Ambos lenguajes están semi-compilados para que, en lugar de compilar en código máquina, compilen en bytecode (C # compila en CIL pero éste y Bytecode son similares) y luego se interpretan.
Javascript: Programas en su navegador
Javascript no es nada como Java, en cambio, es un lenguaje de script basado en la sintaxis C pero con la adición de Objetos y se usa principalmente en navegadores. JavaScript se interpreta y es mucho más lento que compilado código pero funciona bien dentro de un navegador.
Inventado por Netscape, ha demostrado ser muy exitoso y después de varios años en la crisis está disfrutando de una nueva oportunidad de vida debido a AJAX; Javascript asincrónico y XML. Esto permite que partes de las páginas web se actualicen desde el servidor sin volver a dibujar la página completa.
ActionScript: ¡Un lenguaje llamativo!
ActionScript es una implementación de JavaScript pero existe únicamente dentro de las aplicaciones Macromedia Flash. Utilizando gráficos basados en vectores, se utiliza principalmente para juegos, reproducir videos y otros efectos visuales y para desarrollar interfaces de usuario sofisticadas, todas ejecutadas en el navegador.
Básico para principiantes
Básico es un acrónimo de Código de Instrucción Simbólica para Principiantes y fue creado para enseñar programación en la década de 1960. Microsoft ha hecho suyo el lenguaje con muchas versiones diferentes, incluyendo VBScript para sitios web y el muy exitoso Visual Basic. La última versión de eso es VB.NET y se ejecuta en la misma plataforma. .RED como C # y produce el mismo bytecode CIL.
Lua es un lenguaje de script gratuito escrito en C que incluye recolección de basura y corutinas. Se interconecta bien con C / C ++ y se usa en la industria de los juegos (y también en los no juegos) para guiar la lógica del juego, los desencadenantes de eventos y el control del juego.
Conclusión
Si bien todos tienen su idioma favorito y han invertido tiempo y recursos en aprender a programarlo, hay algunos problemas que se resuelven mejor con el idioma correcto.
Por ejemplo, no usarías C para escribir aplicaciones web y no escribirías un sistema operativo en Javascript. Pero sea cual sea el idioma que elija, si es C, C ++ o C #, al menos sabe que está en el lugar correcto para aprenderlo.