Blog colaborativo de: Valentina Pardo, Raúl González y Ricardo Toledo
A lo largo de la historia han
aparecido cientos de lenguajes de programación que nos permiten, mediante el
uso de código y las instrucciones de los mismos, desencadenar diferentes
acciones en un ordenador.
Debido a la complejidad de
elaborar directamente código máquina (todo en ceros y unos), se realizó una
abstracción y se creó el primer lenguaje de programación: el lenguaje
ensamblador, un lenguaje de programación de bajo nivel que permitía programar
de manera más sencilla mediante la utilización de mnemónicos que representaban
un conjunto de instrucciones básicas para el ordenador (copiar el contenido de
un registro en otro, sumar y restar 1 al contenido de un registro, etc.). Cada
una de estas instrucciones utilizaban como operandos posiciones de memoria,
registros del ordenador, etc.
No obstante, cuando hoy en día
nos referimos al término de “lenguaje de programación”, nos referimos a los
lenguajes de programación de alto nivel, que utilizan un léxico similar al del
lenguaje natural y, por lo tanto, son más legibles para el usuario.
Para entender adecuadamente cómo
funcionan los lenguajes de alto nivel es necesario comprender una serie de
conceptos básicos iniciales, los cuales se exponen a continuación.
Cuando un programa se ejecuta, se
carga en la memoria del ordenador y utiliza el espacio disponible de la misma
para almacenar los datos con los que trabaja y opera. Estos datos se almacenan
en variables, a cada una de las
cuales se le asigna un espacio en memoria en función de su tipo, que puede ser primitivo (entero, real, carácter, etc.) o
compuesto (cadena, array, objeto Persona, etc.).
Además, los lenguajes de
programación estructurada cuentan con una serie de estructuras para el control del flujo de los programas
(esencialmente, los bloques if-else y
switch-case como sentencias condicionales y los bucles for y while para la ejecución iterativa de bloques de código) y
permiten la creación de funciones,
que son bloques de líneas de código que realizan una determinada acción, pueden
devolver un valor y pueden tomar parámetros como argumentos que modifiquen su
comportamiento. Mediante el uso de estas estructuras y de las funciones se
logra la reutilización de mucho código, de manera que codificar resulta más
sencillo.
A continuación, se muestran
algunos ejemplos básicos en Java del uso de las estructuras más utilizadas de
los lenguajes.
-
Sentencias condicionales:
o
Bloque if-else: escribe por pantalla si un usuario
tiene menos o más de 18 años.
o
Bloque switch-case: asigna a la variable mensaje
el nombre correspondiente al número de día almacenado en la variable dia.
o
For: imprime por pantalla los números del 0 al
9.
o
While: equivalente al for anterior.
- Función o método: suma dos números a y b.
Los lenguajes de alto nivel
El primer lenguaje de alto nivel
es FORTRAN, que apareció en 1957 y supuso un gran impacto en su época, ya que era
fácil de utilizar y permitía la creación de programas complejos que en lenguaje
ensamblador hubiesen sido prácticamente imposibles de codificar. Se utilizó
principalmente para la realización de cálculos matemáticos.
Más adelante, en la década de los
70, aparecieron dos lenguajes, C y Pascal, que hoy en día se siguen utilizando
esencialmente con fines didácticos para enseñar a programar a los principiantes
en el ámbito de la informática, ya que utilizan un léxico y una sintaxis
sencilla y concisa. En concreto, C es un lenguaje que se sigue utilizando para
la implementación de sistemas operativos UNIX, mientras que Pascal ha caído en
desuso [1].
A mediados de los 80, con la
aparición de C++ (extensión del lenguaje C), se popularizó el paradigma de la
programación orientada a objetos, que cambió la forma de tratar los datos en el
mundo de la programación, y es que era posible representar el mundo real de una
manera más fiel a la realidad [2].
Apareció el concepto de clase, que permitía definir una
plantilla para crear objetos con
unas determinadas propiedades o atributos
y un determinado comportamiento que
venía definido por sus métodos (por
ejemplo, Juan es un objeto de la clase Persona que tiene una serie de
propiedades que lo definen, como DNI, nombre o apellidos). Además, se introdujeron
algunos conceptos como el de herencia
(mecanismo por el cual una clase puede conservar los atributos y métodos del
padre) o polimorfismo (mecanismo por
el cual un mismo método con un determinado nombre puede tener diferente
comportamiento en clases diferentes).
Desde entonces, han aparecido
múltiples lenguajes de programación orientados a objetos que a día de hoy son
muy solicitados en el mercado laboral, como pueden ser Java, Python o C#, y que
cada vez incorporan más tecnologías que los hacen más usables en diferentes
ámbitos informáticos.
Uno de esos ámbitos, quizá el más
importante, es el ámbito de la web. En la década de los 90, aparecieron HTML,
JavaScript y PHP, lo que supuso el inicio de la programación web tal y como la
conocemos hoy en día y la introducción de una nueva perspectiva a la hora de
programar.
En esta nueva visión, las
aplicaciones no necesitan ser instaladas por el cliente para poder ejecutarlas,
sino que a partir de los navegadores web (Internet Explorer, Chrome, Firefox,
Edge, etc.) e Internet pueden conectarse y utilizar aplicaciones que están “instaladas”
(el término exacto es desplegadas) en
un servidor remoto [3].

Lenguajes de programación actuales y del futuro
En la actualidad, el mercado de
la programación se enfoca principalmente al mundo de la Inteligencia Artifical
(IA) y Big Data, así como al desarrollo de aplicaciones web y de aplicaciones
móviles, por lo que resultaría interesante conocer los lenguajes de
programación más demandados y aquellos nuevos que están apareciendo para cada
uno de estos ámbitos.
A continuación, se listan algunos
de los lenguajes más interesantes:
-
Inteligencia
Artificial:
o Python:
lenguaje de programación interpretado (no se generan ejecutables, sino que se
va traduciendo e interpretando línea a línea en función sea necesario),
multiparadigma, multiplataforma y con tipado dinámico. Se usa en diferentes
áreas de tecnología: web, inteligencia artificial, procesamiento de datos, etc. [4]
o Prolog:
apareció a principios de los 70 y es uno de los lenguajes de programación
lógica más utilizados en el ámbito de la Inteligencia Artificial.
o Haskell:
surgió a principios de los 90 y, aunque no era muy popular en la comunidad
informática, su nombre ha vuelto a aparecer frecuentemente después que Facebook
consiguiese desarrollar su sistema de filtrado anti-spam de mensajes en este
lenguaje [5].
o Lisp:
no se trata de un lenguaje como tal, sino de una familia de lenguajes
multiparadigma como Common Lisp, Scheme o Racket, cada uno de los cuales dispone
de sus propias funciones.
o Pyro:
desarrollado por Uber, fue lanzado en 2017 y se utiliza para el análisis de los
parámetros que determinan la mejor ruta entre dos puntos, entre otros usos [6].
- Big Data:
o Python
o R:
lenguaje de programación enfocado al análisis estadístico de los más utilizados
en la minería de datos. Cuenta con funciones para la generación de gráficos de
alta calidad [7].
o Scala: lenguaje
multiparadigma similar a Java con características de lenguajes funcionales y
orientados a objetos que es utilizado por grandes empresas como Facebook,
NetFlix o TripAdvisor para el desarrollo de aplicaciones de Big Data.
o Apache
Spark: más que un lenguaje de programación, es una plataforma de
computación distribuida de código abierto que permite gestionar y analizar
grandes volúmenes de datos de una forma rápida, escalable y con unos costes de
implementación y mantenimiento más baratos [8].
- Programación
web:
o Python
o Java:
permite el desarrollo de aplicaciones empresariales mediante su plataforma de
programación Java EE y el uso de diferentes tecnologías como las JSPs (permiten mezclar código HTML y
código Java) y los EJBs (esencialmente,
permiten encapsular los datos almacenados en la base de datos de tal manera que
sean tratados como objetos)
o JavaScript:
al igual que Python, es un lenguaje interpretado, que se ejecuta en el lado del
cliente y permite el desarrollo de páginas web dinámicas. Se usa para validar
datos de formularios, despliegue de menús, etc. Además, JavaScript dispone de
una serie de frameworks que cada vez son más solicitados en el mercado laboral.
Algunos de los más conocidos son Angular
(para el desarrollo de aplicaciones web de una sola página) y jQuery.
o PHP: lenguaje
de programación de propósito general que, al igual que JavaScript, permite la
creación de páginas web dinámicas. A diferencia del primero, se ejecuta en el
lado del servidor.
-
Programación
móvil:
o Java:
se utiliza para el desarrollo de aplicaciones de dispositivos Android.
o Swift:
lenguaje de código abierto lanzado por Apple en 2014 para el desarrollo de
aplicaciones en dispositivos iOS que se caracteriza por su rapidez, seguridad y
sencillez.
o Kotlin:
apareció en 2012 y es uno de los lenguajes oficiales para el desarrollo de
aplicaciones en Android. Se caracteriza por ser sencillo de aprender y su
potencia para desarrollar grandes aplicaciones. Según informe publicado por
Realm, se cree que en unos años superará a Java como el lenguaje de programación
más usado para Android [9].
Conclusión
En definitiva, existen un gran número de lenguajes de
programación, y muchos de ellos se utilizan para un campo concreto, como pueden
ser JavaScript para la web o Prolog para la Inteligencia Artificial. Por lo tanto, una persona que desee iniciarse
en la programación en uno de estos ámbitos puede optar por uno de los lenguajes
“especializados” para ese determinado ámbito, como podría ser Haskell en el
mundo de la Inteligencia Artificial, o bien por un lenguaje de propósito
general como Python o Java, que pueden ser aplicados en diferentes ámbitos.
Referencias
Bibliografía
Diapositivas y material de apoyo de la asignatura
https://es.wikipedia.org/wiki/Historia_de_los_lenguajes_de_programaci%C3%B3n
https://www.ecured.cu/Lenguaje_ensamblador
https://es.wikipedia.org/wiki/Fortran
https://es.quora.com/Que-lenguaje-de-programaci%C3%B3n-deber%C3%ADa-saber-para-el-2017
https://es.wikipedia.org/wiki/Scala_(lenguaje_de_programaci%C3%B3n)
https://www.analyticsvidhya.com/blog/2017/01/scala/
Antonio Leiva (2016), ¿Por qué empresas que empiezan con lenguajes modernos se vuelven a Java?:
https://www.genbetadev.com/java-j2ee/por-que-empresas-que-empiezan-con-lenguajes-modernos-se-vuelven-a-java
Referencias
[1] Julio Liarte (2016), Aprender a Programar en C ¿Aún tiene sentido?:
[5] José Buendía (2016), Los lenguajes de programación más útiles para la inteligencia artificial:
[6] Manuel López Michelone (2017), Uber inventa un lenguaje de programación para hacer Inteligencia Artificial:
Bibliografía
Diapositivas y material de apoyo de la asignatura
https://es.wikipedia.org/wiki/Historia_de_los_lenguajes_de_programaci%C3%B3n
https://www.ecured.cu/Lenguaje_ensamblador
https://es.wikipedia.org/wiki/Fortran
https://es.quora.com/Que-lenguaje-de-programaci%C3%B3n-deber%C3%ADa-saber-para-el-2017
https://es.wikipedia.org/wiki/Scala_(lenguaje_de_programaci%C3%B3n)
https://www.analyticsvidhya.com/blog/2017/01/scala/
Antonio Leiva (2016), ¿Por qué empresas que empiezan con lenguajes modernos se vuelven a Java?:
https://www.genbetadev.com/java-j2ee/por-que-empresas-que-empiezan-con-lenguajes-modernos-se-vuelven-a-java
Thanks for sharing content and such nice information for me. I hope you will share some more content about. Please keep sharing! Programación en Python 3.7
ResponderEliminar