Para empezar y a modo de introducción del tema me gustaría, en primer lugar, definir qué es lenguaje. A grandes rasgos se trata de "un sistema de comunicación estructurado para el que existe un contexto de uso y ciertos principios combinatorios formales". Existen varios tipos de lenguajes: el natural y el artificial. Los naturales son aquellos que se aprenden de manera inconsciente durante los primeros años de vida del individuo (lenguaje humano y animal) y los artificiales son aquellos cuyo aprendizaje es más planificado, deliberado conscientemente (lenguaje formal). Discriminamos entre uno u otro en función a su los seres u objetos usuarios del mismo y por ende a quienes van dirigidos y el contexto en el que se produce ese tipo concreto de lenguaje.
Los
seres humanos poseemos la facultad y capacidad de comunicarnos a
través de un conjunto de signos orales o escritos que, articulados
de determinada manera, conforman lo que consideramos lenguaje humano. Se
trata de una herramienta que además nos permite la socialización e
interacción entre iguales y su adquisición y uso nos posibilita
formas específicas de relación y acción sobre el medio así como
dar lugar a formas concretas de la conducta. Por este motivo debemos
ser conscientes de que su falta o deficiencia tiene consecuencias en
el aprendizaje, en la conformación del conocimiento de las
diferentes áreas y en el propio desarrollo del pensamiento.
Los animales, también, por su parte, poseen un lenguaje propio que consiste en el conjunto de señales de diversos tipos (olfativas, visuales, auditivas...) que permiten al resto de individuos de la misma especie (o incluso en casos muy puntuales, de distinta especie) "interpretar" el sentido de ese mensaje y actuar en consecuencia.
Por último también poseemos los lenguajes formales, propios de campos específicos como es el caso de las ciencias (por ejemplo las matemáticas). Dentro de este tipo de lenguaje se encuentran aquel tipo de lenguaje en el que nos vamos a centrar en esta entrada: el lenguaje de programación.
Por tanto podemos definir el lenguaje de programación como aquel tipo de lenguaje artificial creado por el hombre que tiene como fin indicar a un programa qué ordenes tiene que llevar a cabo y cómo tiene que llevarlas a cabo. Todo lenguaje de programación posee tres elementos fundamentales:
- Un conjunto limitado de símbolos, del que definimos el léxico o vocabulario del lenguaje.
- Un conjunto limitado de reglas, la gramática del lenguaje, a partir del cual construimos las sentencias correctas del mismo (sintaxis).
- La semántica, que asocia un significado (acción que se ha de llevar a cabo) a cada posible construcción del lenguaje.
En base a la búsqueda exhaustiva que he realizado durante estos días destaco como los cinco lenguajes de programación más utilizados los siguientes:
- PYTHON: Ha sido diseñado por Guido van Rossum y está en continuo crecimiento por un gran grupo de desarrolladores. Una de las grandes ventajas que posee es la gratuidad de su intérprete, que puede descargarse desde la página web (http://www.python.org), con dos versiones para cualquier plataforma en uso (PC con Linux, con Microsoft Windows, Macintosh de Apple...). Se trata de un lenguaje muy expresivo, es decir, los programas con este lenguaje son muy compactos, motivo por el cual muchas veces es considerado como lenguaje de programación de muy alto nivel. También es muy legible gracias a su elegante sintaxis y permite la escritura de programas cuya lectura resulta más fácil que si fuera con otros lenguajes. Además, ofrece un entorno interactivo que facilita la realización de pruebas y ayuda a despejar dudas acerca del lenguaje. En el entorno de ejecución posee una gran capacidad de detección de errores que se escapan de la mano de los compiladores y proporciona una información detallada para detectarlos y corregirlos. Phyton puede usarse como lenguaje imperativo procedimental o lenguaje orientado a objetos y posee un rico juego de estructuras de datos que se pueden manipular de modo sencillo.
- C: Su diseño se remonta a los años 70, sufriendo variaciones a lo largo del tiempo. Fue creado por Brian Kernighan y Dennis Ritchie de la empresa de telecomunicaciones AT&T. En los 80 fue modificado y caracterizado por el American National Standards Institute (ANSI) convirtiéndose como ANSI C y conocido como C89. En los 90 se incoporaron nuevas características que mejoraron el lenguaje, dando lugar a la segunda versión de ANSI C, más conocida como C99. Se trata de uno de los lenguajes de programación más utilizados en el mundo profesional, ya que con el se han desarrollado la mayoría de aplicaciones libres y comerciales (por ejemplo, el sistema operativo Linux, que se ha desarrollado en C en su totalidad). Es un lenguaje de propósito general que permite controlar con gran precisión los factores que influyen directamente en la eficiencia de los programas aunque sujeto a nuestra atención en los numerosos detalles, considerándolo un lenguaje intermedio.
- R: Fue iniciado en 1995 por Robert Gentleman y Ross Ihaka del Statistics Departament of University of Auckland. Se trata de la implementación libre del programa S, que usa el S-PLUS. Aunque existen diferencias entre ambos, son casi idénticos. Con el paso del tiempo ha ganado un gran número de usuarios y desarrolladores. Actualmente es desarrollado por el R Development Core Team compuesto por un grupo de desarrolladores voluntarios. El principal lugar de información es su página web (http://www.r-project.org) y salen nuevas versiones de manera periódica. Se caracteriza por distribuirse gratuitamente GNU con libertad para usar, copiar y distribuir. Hay versiones disponibles para diferentes sistemas operativos como Linux, Windows, MacOS, Unix. También tiene una gran cantidad de funciones estadísticas escritas y un gran número de paquetes que añaden más funciones (la mayoría de análisis estadísticos convencionales pueden realizarse en R). Trabaja mediante comandos aunque se han desarrollado interfaces gráficos (GUI) que hacen que su uso sea más complejo pero su entorno más flexible.
- Java: Creado por James Gosling (emacs) y Bill Joy (Sun), es descendiente de un lenguaje conocido con el nombre de "Oak" cuyo principal propósito era el de la creación de software para la televisión interactiva, y cuyas características eran: pequeño, robusto, independiente de la máquina y orientado a objetos. Siendo un fracaso este primer proyecto, los creadores apostaron por Internet con el lema <<La red es la computadora>>, diseñando Java en base a las siguientes características: independiente de la máquina, seguro para trabajar en la red y potente para constutuir un código nativo. Se caracteriza por ser un lenguaje compilado e interpretado, es decir, todo programa que utilice Java como lenguaje ha de compilarse primero, generando un código (bytecodes) que es posteriormente interpretado por una máquina virtual, consiguiendo la independencia de la máquina, pues se ejecutan en máquinas virtuales que son dependientes de la plataforma. Es un lenguaje orientado a objetos de propósito general por lo que se puede utilizar para cualquier tipo de proyecto. Su sintaxis es parecida a la de C y C++ pero no se trata de ningún tipo de evolución de los mismos. En su diseño también se puso especial antención en su seguridad, tanto a nivel de programador como de máquina virtual. Otra de sus características es la de su preparación para la programación concurrente sin tener que utilizar otro tipo de biblioteca, además de un gestor de seguridad con el que poder restringir el acceso a los recursos del sistema.
- HTML: Su origen nos traslada a 1980, cuando el físico Tim Berners-Lee, trabajador para la Organización Europea para la Investigación Nuclear (C.E.R.N., en inglés) propuso un nuevo sistema de hipertexto con el fin de compartir documentos. Tim, una vez terminó su sistema de hipertexto, lo presentó a una convocatoria creada con el fin de desarrollarlo orientado a Internet, que, por aquel entonces, no tenía nada que ver con la red que conocemos en la actualidad. Además, trabajó junto con Robert Cailliau y juntos crearon la llamada WorldWideWeb o W3, que ganó el concurso. A partir de este momento, con el paso del tiempo, fueron surgiendo una serie de versiones de HTML mejoradas, siendo la primera de estas HTML 2.0 (1995), convirtiéndose en el primer lenguaje oficial HTML. Las versiones posteriores (HTML 3.2, HTML 4.0, HTML 4.01) fueron siendo cada vez más sofisticadas que las anteriores, ganando peso conforme iban siendo publicadas y finalmente provocando que hubiese entidades como Apple, Mozilla y Ópera creasen una nueva asociación, WHATWG, que se encargase de manera personalizada en este tipo de sistemas, surgiendo finalmente en marzo de 2005 la versión 5.0 que conocemos en la actualidad. HTML es el lenguaje que utilizan todos los programadores a la hora de crear una web. Este código escrito es interpretado por nuestros navegadores y "conforma aquello que podemos visualizar en la pantalla". Se trata de un lenguaje universal, de manera que cualquier navegador de cualquier sistema operativo es capaz de interpretarlo sin problemas. Aunque en un principio se creó exclusivamente para documentos electrónicos, ahora su uso cubre un espectro mucho más amplo (buscadores, tiendas online...).
Hasta la fecha, no conocía prácticamente nada que guardase relación con los lenguajes de programación. Cabe decir que este trabajo de búsqueda me ha abierto los ojos en cuanto a la inmensidad de lenguajes de programación existentes, sus funcionalidades y, por supuesto la complejidad de cada uno de ellos. A día de hoy sólo había oído hablar de aquellos que, por cuestiones de uso del día a día, acabas aprendiendo un poco de ellos (como C, Java y HTML), pudiendo conocerles más de cerca, profundizando. Por otro lado están aquellos de los que personalmente no había oído hablar (R, Python, Ada...) y que por tanto, no sabía de su existencia. Además, de manera análoga al lenguaje de los seres humanos y de los animales, el lenguaje de programación constituye las bases (nexo) entre el usuario y la tecnología, hecho que no debemos de pasar jamás por alto.