¿Qué es un lenguaje de programación?
Un lenguaje de programación no es más que una manera formal y establecida que tiene un programador para comunicarse con una máquina. Al igual que cualquier lenguaje natural, tiene una sintaxis, unas buenas prácticas, unos símbolos que lo componen…Todas estas normas y reglas son importantes para llegar al objetivo final que se pretende y para lograr de una mejor manera, la comunicación con la máquina.
Los lenguajes han ido evolucionando, desde los más primarios basados en código binario (0s y 1s), pasando por los intermedios, donde se usaban una serie de palabras básicas (como ensamblador) hasta llegar a los lenguajes de alto nivel (que contienen un amplio abanico de posibilidades, estructuras predefinidas y palabras propias).
Como en nuestro lenguaje natural (español, inglés, francés, italiano…), existen muchos
lenguajes de programación (javascript, java, php, python…). Cada uno de ellos tiene reglas
y formas de construcción diferentes que los hacen únicos pero, como pasa en el lenguaje
natural, comparten muchas características comunes.
Dicho esto, vamos a ver qué tipos de lenguajes existen y cuáles son las características principales de cada uno de estos tipos.
Lenguaje máquina
Podemos decir que este es el lenguaje más primitivo que existe, ya que se basa en una serie de dígitos binarios para comunicarse con el ordenador. A pesar del paso del tiempo, los dispositivos electrónicos siguen trabajando de una forma muy parecida a como lo hacían en el pasado. Estos dispositivos, trabajan con dos niveles de voltaje, que serían encendido y apagado, lo que se traduciría en 0 y 1.
De este modo, a través de una larga combinación de ceros y unos, podemos comunicarnos con el ordenador de una forma eficaz. Dicho esto, el lenguaje binario es algo complicado de visualizar, ya que incluso para una orden sencilla, el código es bastante largo y difícil de leer, por lo que los lenguajes de programación avanzaron a algo que fuera más legible.
Lenguaje ensamblador
En los primeros años de la programación, era el programador quién tenía que traducir el código máquina para poder comunicarse con el ordenador. Pasado un tiempo, la comunidad de programadores se preguntó que quizás podían usar al propio ordenador para traducir el código binario a un lenguaje más legible. De esta idea surgió lo que se conoce como lenguaje ensamblador.
Este tipo de lenguaje se escribe como texto, y luego, mediante lo que se conoce como un ensamblador, se traduce ese texto que hemos escrito a código binario. Dicho esto, hay que dejar claro que el código binario es el único código que entiende el ordenador, por lo que siempre se hace necesaria esa traducción intermedia.
Aun así, el surgimiento de los ensambladores fue un gran paso hacia los lenguajes de programación de alto nivel, ya que no se hacía necesario saber leer y escribir en código máquina, sino que con una serie de palabras clave, podíamos comunicarnos con el ordenador de una forma más eficiente.
Lenguajes de alto nivel
Los lenguajes de alto nivel son la evolución de los lenguajes ensambladores. Siguiendo con la misma lógica que su predecesor, lo que se intenta es que programar se aleje cada vez más del código máquina y se acerque más a los lenguajes humanos (como el inglés, español) para que así la forma de comunicación entre humano y máquina sea mucho más efectiva y sencilla.
Actualmente, la mayoría de lenguajes que se utilizan son de alto nivel, ya que facilitan en gran medida la labor del programador. Esta evolución de los lenguajes de programación ha conseguido que hoy en día cualquier persona pueda programar sin necesidad de conocer cómo recibe órdenes la máquina, por lo que la programación se ha hecho cada vez más accesible.
Lenguajes interpretados y compilados
Es interesante hacer una pequeña diferenciación entre lo que significa que un lenguaje sea interpretado o compilado. Si hablamos de lenguajes interpretados, nos referimos a que a medida que escribimos el código, este se va traduciendo a código máquina y el ordenador lo va ejecutando.
Por otro lado, tenemos los lenguajes compilados. Estos lenguajes lo que hacen es que una vez que se ha escrito todo el código, se compila el programa entero. Una vez que la compilación se ha completado, se ejecuta, lo que hace que la ejecución sea más fluida, ya que el programa ya está completo. Además, una vez que ha concluido la compilación, esta se puede ejecutar más veces sin necesidad de volver a compilar, al contrario que con los lenguajes interpretados.
Lenguajes declarativos e imperativos
Este paradigma de programación es quizás el menos claro de todos, ya que se centra en conseguir un resultado final deseado en lugar de mostrar todos los pasos de trabajo. Este tipo de programación es bastante eficiente, ya que el código es más limpio y corto, pero el nivel de abstracción es mayor, por lo que a veces complica su legibilidad.
Por contrapartida, tenemos otro paradigma que sería el de los lenguajes imperativos. Este tipo de lenguaje está orientado a instrucciones, y define claramente todos los pasos que se deben dar para llegar a una solución. Como es de esperar, el código con este paradigma será más largo ya que iremos indicando cada uno de los pasos que hemos realizado, pero a su vez, será más fácil de entender, sobre todo si no estamos tan familiarizados con el lenguaje.
Lenguajes orientados a objetos
La programación orientada a objetos, es uno de los últimos paradigmas de programación, y consiste en acercar la forma de pensar de los seres humanos al lenguaje de la máquina. Para ello, estos lenguajes se basan en clases de las que podremos crear objetos, y a su vez estos estarán formados por atributos y métodos. Así, acercamos nuestra forma de pensar al mundo de la programación de una manera muy sencilla.
Por ejemplo, si queremos crear un programa de coches, crearemos una clase que se llame “Coche” y cada objeto de tipo Coche tendrá una serie de métodos y propiedades, como pueden ser el número de asientos, el color, la marca… De este modo, es mucho más fácil de ver lo que estamos programando, ya que se relaciona directamente con las entidades reales con las que trabajamos en nuestra vida cotidiana.
Conclusión
Con todo esto, podemos decir que existen una gran variedad de lenguajes de programación y que cada uno tiene sus puntos fuertes y debilidades. Dependiendo del tipo de programa que estemos intentando desarrollar, utilizaremos uno u otro y tendremos que adaptarnos a lo que requiera cada uno de los lenguajes.
Es tarea del desarrollador elegir entre las diferentes opciones que tenemos a nuestra disposición para que el programa que se pretenda desarrollar se lleve a cabo de la forma más eficiente y organizada posible.