Está en la página 1de 21

HISTORIA DE LOS LENGUAJES DE PROGRAMACIN

Este artculo trata sobre los acontecimientos ms importantes en la historia de los lenguajes
de programacin. Para entrar en detalle en la lnea del tiempo de estos eventos, visite la
cronologa de los lenguajes de programacin.
Antes de 1940
Los primeros lenguajes de programacin preceden a la computadora moderna. En un inicio
los lenguajes eran cdigos.

La mquina del telar de Jacquard, creada en 1801, utilizaba los orificios en tarjetas perforadas
para representar los movimientos de un brazo de la mquina de tejer, con el objetivo de
generar patrones decorativos automticamente.

Durante un perodo de nueve meses entre 1842 y 1843, Ada Lovelace tradujo las memorias
del matemtico italiano Luigi Menabrea acerca de la nueva mquina propuesta por Charles
Babbage, la Mquina Analtica. Con estos escritos, ella aadi unas notas en las cuales
especificaba en detalle un mtodo para calcular los nmeros de Bernoulli con esta mquina, el
cual es reconocido por muchos historiadores como el primer programa de computadora del
mundo.

Herman Hollerith se percat de que poda codificar la informacin en tarjetas perforadas


cuando observ a los conductores de trenes codificar la apariencia de los cricket o tickets
mejor conociado del tren con la posicin de los agujeros perforados en estos. En 1890
Hollerith codific los datos del censo en tarjetas perforadas.

Los primeros cdigos de computadora estaban especializados segn sus aplicaciones. En las
primeras dcadas del siglo 20, los clculos numricos estaban basados en los nmeros
decimales. Eventualmente se fueron dando cuenta que la lgica poda ser representada con
nmeros, no slo con palabras. Por ejemplo, Alonzo Church fue capaz de expresar el clculo
lambda a travs de frmulas. La mquina de Turing estableci las bases para almacenar
programas como datos en la arquitectura de von Neuman de una computadora. Sin embargo,
a diferencia del clculo lambda, el cdigo de Turing no servira satisfactoriamente como base
para lenguajes de ms alto nivel- su principal uso es en el anlisis riguroso en la complejidad
algortmica.

Como muchos primeros en la historia, el primer lenguaje de programacin moderno es difcil


de identificar. Desde un inicio, las restricciones de hardware definan el lenguaje. Las tarjetas
perforadas permitan 80 columnas, pero algunas de estas seran utilizadas para una
clasificacin de cada tarjeta. FORTRAN inclua algunas palabras reservadas provenientes del
Ingls, como IF, GOTO (go to) y CONTINUE. El uso del tambor magntico para la
memoria implicaba que los programas informticos tuvieran que estar intercalados con las
rotaciones del tambor. Por lo tanto los programas eran muy dependientes del hardware.

Para algunas personas, lo que sera el primer lenguaje de programacin moderno depende de
cunto poder y legibilidad humana se requera antes de que se concediera el estado de
"lenguaje de programacin". Tanto el telar de Jacquard como la Mquina Diferencial de
Babbage, tenan lenguajes muy simples y extremadamente limitados para describir las
acciones que estas mquinas realizaran. Se puede incluso considerar los agujeros perforados
en los rollos de pianola como un limitado lenguaje de dominio especfico, a pesar de no estar
diseado para el consumo humano.

Los aos 40[editar]


En la dcada de 1940 fueron creadas las primeras computadoras modernas, con alimentacin
elctrica. La velocidad y capacidad de memoria limitadas forzaron a los programadores a
escribir programas en lenguaje ensamblador muy afinados. Finalmente se dieron cuenta que
la programacin en lenguaje ensamblador requera de un gran esfuerzo intelectual y era muy
propensa a errores.

En 1948, Konrad Zuse public un artculo acerca de su lenguaje de programacin Plankalkl.


Sin embargo, no fue implementado en su vida y sus contribuciones fueron aisladas de otros
desarrollos.

Entre algunos lenguajes importantes que fueron desarrollados en este perodo se encuentran:

1943 - Plankalkl (Konrad Zuse), diseado, pero sin implementar durante medio siglo
1943 - el sistema de codificacin ENIAC.

1949 - 1954 -- una serie de conjuntos de instrucciones nemotcnicas, como la de ENIAC,


comenzando en 1949 con C-10 para BINAC (que luego evolucionara en UNIVAC). Cada
conjunto de instrucciones estaba destinado a un fabricante especfico.
Las dcadas de 1950 y 1960[editar]
En los cincuenta, los tres primeros lenguajes de programacin modernos, cuyos
descendientes an continan siendo utilizados, son:

FORTRAN (1955), creado por John Backus et al.;


LISP (1958), creado por John McCarthy et al.;
COBOL (1959), creado por el Short Range Committee, altamente influenciado por Grace
Hopper.
Otro hito a finales de 1950 fue la publicacin, por un comit Americano y Europeo de
cientficos de la computacin, de un nuevo lenguaje para algoritmos; el Reporte de ALGOL
60 ("ALGOrithmic Language"). Este reporte consolid muchas ideas que estaban circulando
en aquel entonces, y proporcion dos innovaciones importantes para los lenguajes de
programacin:

Estructuras de bloques anidadas: las secuencias de cdigo y las declaraciones asociadas se


pueden agrupar en bloques sin tener que pertenecer explcitamente a procedimientos
separados;
mbito lxico: un bloque puede tener sus propias variables, procedimientos y funciones,
invisible al cdigo fuera de dicho bloque, por ejemplo, ocultamiento de informacin.
Otra innovacin, relacionada con esto, fue cmo el lenguaje fue descrito:

Una notacin matemtica exacta, Backus-Naur Form (BNF), fue utilizada para describir la
sintaxis del lenguaje. Todos los subsecuentes lenguajes de programacin han utilizado una
variante de BNF para describir la porcin libre del contexto de su sintaxis.
Algol 60 influenci particularmente en el diseo de lenguajes posteriores, de los cuales
algunos se hicieron ms populares. Los grandes sistemas de Burroughs fueron diseados
para ser programados en un subconjunto extendido de Algol.

Las ideas fundamentales de Algol se continuaron, produciendo Algol 68:

la sintaxis y la semntica se hizo an ms ortogonal, con rutinas annimas, un sistema de


tipificacin recursiva con funciones de orden superior, etc.;
y no slo la parte libre del contexto, sino que tanto la sintaxis como la semntica del lenguaje
completo fueron definidos formalmente, en trminos de una gramtica de Van Wijngaarden,
un formalismo diseado especficamente para este propsito.
Las variadas pero poco usadas caractersticas de Algol 68 (por ejemplo, bloques simultneos
y paralelos) y su complejo sistema de atajos sintcticos y coerciones automticas de tipo lo
hicieron impopular entre los ejecutores y se gan una reputacin de ser difcil. Niklaus Wirth
sali del comit de diseo para crear el sencillo lenguaje Pascal.

Algunos de los lenguajes importantes que fueron desarrollados en este perodo incluyen:

1951 - Regional Assembly Language


1952 - Autocode
1954 - IPL (precursor de LISP)
1955 - FLOW-MATIC (precursor de COBOL)
1957 - FORTRAN (primer compilador)
1957 - COMTRAN (precursor de COBOL)
1958 - LISP
1958 - ALGOL 58
1959 - FACT (precursor de COBOL)
1959 - COBOL
1959 - RPG
1962 - APL
1962 - Simula

1962 - SNOBOL
1963 - CPL (precursor de C)
1964 - BASIC
1964 - PL/I
1967 - BCPL (precursor de C)
1968-1979: estableciendo paradigmas fundamentales[editar]
El perodo comprendido entre finales de 1960 y finales de 1970 trajo un gran florecimiento de
lenguajes de programacin. La mayora de los paradigmas de lenguajes de programacin ms
importantes y actualmente en uso se inventaron en este perodo:

Simula, inventado en la dcada de 1960 por Nygaard y Dahl como un superconjunto de Algol
60, fue el primer lenguaje diseado para apoyar la programacin orientada a objetos.
C, en principio un lenguaje de programacin sistemas, fue desarrollado por Dennis Ritchie y
Ken Thompson en los Laboratorios Bell entre 1969 y 1973.
Smalltalk (mediados de los 70) proporcionaron un completo diseo de un lenguaje orientado a
objetos.
Prolog, diseado en 1972 por Colmerauer, Roussel y Kowalski, fue el primer lenguaje de
programacin lgica.
ML construy un sistema de tipos polimrfico (inventado por Robin Milner en 1973) en el tope
de Lisp, pionero en los lenguajes funcionales de programacin con tipado esttico.
Cada uno de estos lenguajes gener toda una familia de descendientes, y los lenguajes ms
modernos cuentan al menos uno de ellos en su ascendencia.

En los aos 60 y 70 tambin suscit un debate considerable sobre los mritos de la


"programacin estructurada", que esencialmente significaba programacin sin el uso de
GOTO. Este debate estaba estrechamente relacionado con el diseo del lenguaje: algunos
lenguajes no incluan GOTO, lo que oblig a la programacin estructurada en el programador.
Aunque el debate se recrudeca acaloradamente en ese momento, casi todos los
programadores estn de acuerdo en que, incluso en lenguajes que ofrecen GOTO, es una
mala prctica de programacin usarlo, excepto en raras circunstancias. Como resultado de

ello, las generaciones posteriores de diseadores de lenguajes han encontrado el debate


sobre programacin estructurada tedioso e incluso desconcertante.

Algunos lenguajes importantes que se desarrollaron en este perodo fueron:

1968 - Logo
1969 - B (precursor C)
1970 - Pascal
1970 - Forth
1972 - C
1972 - Smalltalk
1972 - Prolog
1973 - ML
1975 - Scheme
1978 - SQL (inicialmente slo un lenguaje de consulta, posteriormente ampliado con
construcciones de programacin)
La dcada de 1980: consolidacin, mdulos, rendimiento[editar]
La dcada de 1980 fueron aos de consolidacin relativa en los lenguajes imperativos. En vez
de inventar nuevos paradigmas, se comenz a trabajar a partir de las ideas inventadas en la
dcada anterior. C++ combinaba la programacin orientada a objetos y la programacin de
sistemas. El gobierno de Estados Unidos estandariz Ada, un lenguaje de programacin de
sistemas destinado a ser utilizado por contratistas de defensa. En Japn y en otras partes, se
gastaron enormes sumas investigando los llamados lenguajes de programacin de quinta
generacin que incorporaban construcciones de la programacin lgica. La comunidad de los
lenguajes funcionales llevaron a cabo la estandarizacin de ML y Lisp. La investigacin en
Miranda, un lenguaje funcional, con evaluacin perezosa, comenz a tomar fuerza en esta
dcada.

Una nueva tendencia importante en el diseo de lenguajes era un mayor enfoque en la


programacin de sistemas a gran escala a travs del uso de mdulos, una organizacin a

gran escala de unidades de cdigo. Modula, Ada, y ML desarrollaron sistemas de mdulos


notables en la dcada de 1980. Los sistemas de mdulos eran relacionados con frecuencia
con construcciones de programacin genricas, que seran, en esencia, mdulos
parametrizados (vase tambin polimorfismo en programacin orientada a objetos).

Aunque no aparecan nuevos paradigmas de lenguajes de programacin imperativos, muchos


investigadores expandieron las ideas de los lenguajes anteriores y las adaptaron a nuevos
contextos. Por ejemplo, los lenguajes de los sistemas Argus y Emerald adaptaron la
programacin orientada a objetos para sistemas distribuidos.

La dcada de 1980 tambin trajo avances en la implementacin de lenguajes de


programacin. El movimiento de RISC en la arquitectura de computadoras postulaba que el
hardware deba estar diseado para los compiladores ms que para los programadores de
ensamblador humanos. Con la ayuda de las mejoras en la velocidad del procesador,
permitiendo tcnicas de compilacin cada vez ms agresivas, el movimiento RISC despert
un mayor inters en la tecnologa de compilacin de los lenguajes de alto nivel.

Las tecnologas de los lenguajes continuaron sobre estas lneas entrando en la dcada de
1990.

Algunos lenguajes importantes que se desarrollaron en este perodo son:

1980 - C++ (C con clases, el nombre cambi en Julio de 1983)


1983 - Ada
1984 - Common Lisp
1984 - MATLAB
1985 - Eiffel
1986 - Objective-C
1986 - Erlang
1987 - Perl

1988 - Tcl
1988 - Mathematica
1989 - FL (Backus);
La dcada de 1990: la era de Internet[editar]
El rpido crecimiento de Internet en la dcada de 1990 fue el siguiente gran acontecimiento
histrico para los lenguajes de programacin. Con la apertura de una plataforma totalmente
nueva para los sistemas informticos, Internet cre una oportunidad adoptar nuevos
lenguajes. En particular, el lenguaje de programacin Java se hizo popular debido a su pronta
integracin con el navegador web Netscape Navigator, y varios lenguajes de scripting
alcanzaron un amplio uso en el desarrollo de aplicaciones personalizadas para servidores
web. La dcada de 1990 no vio ninguna novedad fundamental en los lenguajes imperativos,
pero s mucha recombinacin y la maduracin de viejas ideas. Esta era comenz la difusin
de los lenguajes funcionales. Una filosofa de conduccin grande era la productividad del
programador. Surgieron muchos lenguajes de aplicaciones de desarrollo rpido (RAD), los
cuales usualmente venan con un IDE, recolector de basura, y eran descendientes de
lenguajes anteriores. Todos estos lenguajes eran orientados a objeto. Estos incluan Object
Pascal, Visual Basic y Java. Java, en particular, recibi mucha atencin. Pero ms radicales e
innovadores que los lenguajes de RAD eran los nuevos lenguajes de script. Estos no
descendan directamente de otros lenguajes y ofrecieron nuevas sintaxis e incorporacin ms
liberal de otras caractersticas. Muchos consideran estos lenguajes de script ms productivos
que los lenguajes de RAD, aunque esto se debe a menudo a que es ms difcil escribir y
mantener largos programas que pequeos programas simples. Sin embargo, no es menos
cierto que los programas de script llegaron para convertirse en los ms prominentes en la
conexin con la Web.

Algunos lenguajes importantes que se desarrollaron en este perodo son:

1990 - Haskell
1991 - Python
1991 - Visual Basic
1991 - HTML (lenguaje de marcado de hipertexto)
1993 - Ruby

1993 - Lua
1994 - CLOS (parte del ANSI Common Lisp)
1995 - Java
1995 - Delphi (Object Pascal)
1995 - JavaScript
1995 - PHP
1996 - WebDNA
1997 - Rebol
1999 - D
Tendencias actuales[editar]
La evolucin de los lenguajes de programacin contina, tanto en la industria como en
investigacin. Algunas de las tendencias actuales incluyen:

Aumentar el soporte para la programacin funcional en lenguajes importantes utilizados


comercialmente, incluida la programacin funcional pura para hacer el cdigo ms fcil de
razonar y de paralelizar (tanto en macro como en micro-niveles).
Construir lenguajes para apoyar la programacin concurrente y distribuida.
Mecanismos para aadir al lenguaje verificacin en cuanto a seguridad y confiabilidad:
chequeo sintctico extendido, control de flujo de informacin, seguridad de hilos.
Mecanismos alternativos de modularidad: mixins, delegados, aspectos.
Desarrollo de software orientado a componentes.
Metaprogramacin, la reflexin o el acceso al rbol de sintaxis abstracta.
Mayor nfasis en cuanto a distribucin y movilidad.
Integracin con bases de datos, incluyendo XML y bases de datos relacionales.
Soporte para Unicode para que el cdigo fuente (texto del programa) no se limite slo a los
caracteres contenidos en el conjunto de caracteres ASCII, permitiendo, por ejemplo, el uso de
caracteres no latinos basados en guiones o signos de puntuacin extendidos.

XML para interfaz grfica (XUL, XAML).


El cdigo abierto como una filosofa de desarrollo de lenguajes, incluyendo la coleccin de
compiladores de GNU y lenguajes recientes, como Python, Ruby, y Squeak.
Programacin Orientada a Aspectos (AOP).
Lenguajes que soporten programar sobre los procesadores de la GPU en paralelo, como
OpenCL.
Algunos lenguajes importantes desarrollados durante este perodo incluyen:

2000 - ActionScript
2001 - C#
2001 - Visual Basic .NET
2002 - F#
2003 - Groovy
2003 - Scala
2003 - Factor
2007 - Clojure
2009 - Go
2011 Dart

Conocimientos bsicos
HISTORIA
Los primeros lenguajes de programacin surgieron de la idea de Charles Babagge, la cual se
le ocurri a este hombre a mediados del siglo XIX. Era un profesor matemtico de la
universidad de Cambridge e inventor ingls, que al principio del siglo XIX predijo muchas de
las teoras en que se basan los actuales ordenadores. Consista en lo que l denominaba la
maquina analtica, pero que por motivos tcnicos no pudo construirse hasta mediados del
siglo XX. Con l colaboro Ada Lovedby, la cual es considerada como la primera programadora
de la historia, pues realizo programas para aqulla supuesta mquina de Babagge, en tarjetas
perforadas. Como la maquina no llego nunca a construirse, los programas de Ada,
lgicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la
programacin, sobre todo si observamos que en cuanto se empez a programar, los
programadores utilizaron las tcnicas diseadas por Charles Babagge, y Ada, que consistan
entre otras, en la programacin mediante tarjetas perforadas. A pesar de ello, Ada ha
permanecido como la primera programadora de la historia. Se dice por tanto que estos dos
genios de antao, se adelantaron un siglo a su poca, lo cual describe la inteligencia de la que
se hallaban dotados.
En 1823 el gobierno Britnico lo apoyo para crear el proyecto de una mquina de diferencias,
un dispositivo mecnico para efectuar sumas repetidas. Pero Babagge se dedic al proyecto
de la mquina analtica, abandonando la mquina de diferencias, que se pudiera programar
con tarjetas perforadas, gracias a la creacin de Charles Jacquard (francs). Este hombre era
un fabricante de tejidos y haba creado un telar que poda reproducir automticamente
patrones de tejidos, leyendo la informacin codificada en patrones de agujeros perforados en
tarjetas de papel rgido. Entonces Babagge intento crear la mquina que se pudiera programar
con tarjetas perforadas para efectuar cualquier clculo con una precisin de 20 dgitos. Pero la
tecnologa de la poca no bastaba para hacer realidad sus ideas. Si bien las ideas de
Babagge no llegaron a materializarse de forma definitiva, su contribucin es decisiva, ya que
los ordenadores actuales responden a un esquema anlogo al de la mquina analtica. En su
diseo, la mquina constaba de cinco unidades bsicas:
Unidad de entrada, para introducir datos e instrucciones.
Memoria, donde se almacenaban datos y resultados intermedios.
Unidad de control, para regular la secuencia de ejecucin de las operaciones.
Unidad Aritmtico-Lgica, que efecta las operaciones.
Unidad de salida, encargada de comunicar al exterior los resultados.

Charles Babbage, conocido como el "padre de la informtica" no pudo completar en aquella


poca la construccin del computador que haba soado, dado que faltaba algo fundamental:
la electrnica. El camino sealado de Babbage, no fue nunca abandonado y siguindolo, se
construyeron los primeros computadores.
Cuando surgi el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And
Calculator), su programacin se basaba en componentes fsicos, o sea, que se programaba,
cambiando directamente el Hardware de la mquina, exactamente lo que s hacia era
cambiar cables de sitio para conseguir as la programacin de la mquina. La entrada y salida
de datos se realizaba mediante tarjetas perforadas.
DEFINICIN
Un Lenguaje de Programacin es un conjunto de reglas, notaciones, smbolos y/o caracteres
que permiten a un programador poder expresar el procesamiento de datos y sus estructuras
en la computadora. Cada lenguaje posee sus propias sintaxis. Tambin se puede decir que un
programa es un conjunto de rdenes o instrucciones que resuelven un problema especfico
basado en un Lenguaje de Programacin.
2.2.1. CARACTERISTICAS
Legibilidad: consiste en si el lenguaje tiene una sintaxis sencilla, fciles de leer y fciles de
compilar
Ortogonalidad: permite combinar en una sola instruccin diversas caractersticas del lenguaje,
de esta manera se consiguen programas ms cortos y ms compactos.
Naturalidad para la aplicacin: consiste en el lenguaje proporcione herramientas adecuadas
para el fin para el que est pensado.
Soporte a la abstraccin: Solucionar tipos de problemas y no problemas concretos. Debe
permitir que el programador pueda crear funciones y procedimientos.
Entorno de programacin: Los lenguajes han de ir acompaados de un entorno donde
programar.
Portabilidad de los programas: Es un lenguaje que permite crear programas que funcionen en
cualquier maquina pertenezca a la plataforma que quiera, distinto fabricante, etc.
TENDENCIAS DE LOS LENGUAJES DE PROGRAMACIN
El estudio de los lenguajes de programacin agrupa tres intereses diferentes; el del
programador profesional, el del diseador del lenguaje y del Implementador del lenguaje.

Adems, estos tres trabajos han de realizarse dentro de las ligaduras y capacidades de la
organizacin de una computadora y de las limitaciones fundamentales de la propia
"calculabilidad". El trmino "el programador" es un tanto amorfo, en el sentido de que camufla
importantes diferencias entre distintos niveles y aplicaciones de la programacin. Claramente
el programador que ha realizado un curso de doce semanas en COBOL y luego entra en el
campo del procesamiento de datos es diferente del programador que escribe un compilador
en Pascal, o del programador que disea un experimento de inteligencia artificial en LISP, o
del programador que combina sus rutinas de FORTRAN para resolver un problema de
ingeniera complejo, o del programador que desarrolla un sistema operativo multiprocesador
en ADA.
En este trabajo, intentare clarificar estas distinciones tratando diferentes lenguajes de
programacin en el contexto de cada rea de aplicacin diferente. El "diseador del lenguaje"
es tambin un trmino algo nebuloso. Algunos lenguajes (como APL y LISP) fueron diseados
por una sola persona con un concepto nico, mientras que otros (FORTRAN y COBOL) son el
producto de desarrollo de varios aos realizados por comits de diseo de lenguajes.
Los lenguajes de " Alto Nivel" son los ms utilizados como lenguaje de programacin. Aunque
no son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos se
expresen en un nivel y estilo de escritura fcilmente legible y comprensible por otros
programadores. Adems, los lenguajes de alto nivel tienen normalmente las caractersticas de
" Transportabilidad". Es decir, estn implementadas sobre varias mquinas de forma que un
programa puede ser fcilmente " Transportado " (Transferido) de una maquina a otra sin una
revisin sustancial. En ese sentido se llama "Independientes de la maquina". Ejemplos de
estos lenguajes de alto nivel son PASCAL, APL y FORTRAN (para aplicaciones cientficas),
COBOL (para aplicaciones de procesamiento de datos), SNOBOL (para aplicaciones de
procesamiento de textos), LISP y PROLOG (para aplicaciones de inteligencia artificial), C y
ADA (para aplicaciones de programacin de sistemas) y PL/I (para aplicaciones de propsitos
generales).
Los "Lenguajes Ensambladores" y los "Lenguajes Maquina" son dependientes de la mquina.
Cada tipo de mquina, tal como VAX de digital, tiene su propio lenguaje maquina distinto y su
lenguaje ensamblador asociado. El lenguaje Ensamblador es simplemente una representacin
simblica del lenguaje maquina asociado, lo cual permite una programacin menos tediosa
que con el anterior. Sin embargo, es necesario un conocimiento de la arquitectura mecnica
subyacente para realizar una programacin efectiva en cualquiera de estos niveles lenguajes.
PARADIGMAS EN LENGUAJES DE PROGRAMACION
Existen diversos lenguajes y paradigmas de programacin para facilitar la tarea de
programacin en diferentes mbitos. Por ejemplo, la programacin orientada a objetos es un
paradigma dirigido al mejoramiento en la calidad del software por medio de la observacin de

aspectos tales como la correccin, robustez, extensibilidad, compatibilidad y sobre todo la


reusabilidad del software.
La programacin lgica, por su parte, es un paradigma orientado a la expresin de los
problemas en trminos lgicos para su posterior solucin por mtodos de inferencia y tcnicas
lgicas.
En la prctica, cada paradigma de programacin es implementado a travs de diversos
lenguajes. Solo como un ejemplo, la programacin orientada a objetos encuentra recipientes
en lenguajes JAVA, C++, Eiffel, Objetive c, etc.
TENDENCIAS ACTUALES
La evolucin de los lenguajes de programacin contina, tanto en la industria como en
investigacin. Algunas de las tendencias actuales incluyen:
Aumentar el soporte para la programacin funcional en lenguajes importantes utilizados
comercialmente, incluida la programacin funcional pura para hacer el cdigo ms fcil de
razonar y de paralelizar (tanto en macro como en micro-niveles).
Construir lenguajes para apoyar la programacin concurrente y distribuida.
Mecanismos para aadir al lenguaje verificacin en cuanto a seguridad y confiabilidad:
chequeo sintctico extendido, control de flujo de informacin, seguridad de hilos.
Mecanismos alternativos de modularidad: mixins, delegados, aspectos.
Desarrollo de software orientado a componentes.
Mayor nfasis en cuanto a distribucin y movilidad.
Integracin con bases de datos, incluyendo XML y bases de datos relacionales.
Programacin Orientada a Aspectos (AOP).
Lenguajes que soporten programar sobre los procesadores de la GPU en paralelo, como
OpenCL.

HISTORIA DE LA INFORMTICA: LOS LENGUAJES DE PROGRAMACIN

Qu es un lenguaje de programacin?

Al igual que las personas nos comunicamos entre nosotras utilizando un lenguaje (por ejemplo
Espaol o Ingls), un lenguaje de programacin permite a las personas comunicarse con los
ordenadores para indicarles lo que tienen que hacer. Una persona que quiere que el
ordenador realice una determinada tarea escribe un programa en un lenguaje de
programacin determinado, y el ordenador (utilizando ciertos traductores llamados
compiladores e intrpretes) es capaz de realizar dicha tarea.

Desde la invencin de las primeras mquinas de calcular hasta la actualidad, la evolucin de


los ordenadores ha ido acompaada del desarrollo de nuevos lenguajes de programacin que
permitan aprovechar la potencia de stos de manera eficiente.

En este artculo pretendo dar una pequea idea sobre la evolucin de los lenguajes de
programacin, desde los primeros como FORTRAN o COBOL, hasta los ms difundidos en la
actualidad como C, Java o C#. No pretendo mencionar todos los lenguajes de programacin actualmente existen ms de 2.500 - sino centrarme en los que considero que han sido ms
relevantes e influyentes en el mundo del desarrollo de software.

Los primeros lenguajes

En la dcada de los 40 empezaron a surgir los primeros lenguajes de programacin de


ordenadores. Estos primeros lenguajes (llamados lenguajes Ensamblador) estaban basados
en smbolos o nemnicos que se correspondan directamente con instrucciones de cdigo
mquina (el cdigo que es capaz de interpretar un ordenador sin necesidad de un intrprete o
traductor).

En 1957 aparece el lenguaje Fortran (siglas de FORmula TRANslator), el primer lenguaje de


alto nivel ampliamente difundido y utilizado a nivel mundial. El primer compilador de Fortran
fue desarrollado por un equipo de IBM liderado por John W. Backus. Inicialmente Fortran fue

muy utilizado en el mundo cientfico y en alplicaciones militares, y se escribieron multitud de


libreras matemticas para clculo numrico, algunas de las cuales siguen utilizndose hoy en
da.

Ya en 1960 aparece LISP, un lenguaje idneo para crear programas de inteligencia artificial
porque utilizaba conceptos de programacin funcional y recursividad. Aunque no es muy
utilizado para el desarrollo de aplicaciones empresariales, LISP sigue siendo utilizado hoy en
da en entornos docentes (yo mismo lo utilizo en una asignatura en la que se ensean
diversos paradigmas de programacin).

Tambin en 1960 aparece COBOL, un lenguaje preparado para procesar grandes cantidades
de informacin. Esto hizo que fuese ampliamente adoptado en bancos y grandes
organizaciones que siguen utilizndolo hoy en da.

En 1964 se crea el lenguaje BASIC (Beginner's All-purpose Symbolic Instruction Code),


especialmente diseado para ensear a programar a principiantes. BASIC es el lenguaje que
muchos (entre los que me incluyo) utilizamos para hacer nuestros primeros pinitos en el
mundo de la programacin, cuando desterramos nuestros viejos ordenadores Comodore-64
sustituyndolos por el recin aparecido Amstrad CPC 464 y su flamante unidad de cinta (que
despus de leer un par de veces cada cinta era incapaz de volver a hacerlo qu tiempos
aquellos!). Ya en las primeras versiones de MS-DOS (el primer sistema operativo de
Microsoft) se inclua un intrprete de BASIC.

Los lenguajes C y Pascal

El lenguaje Pascal aparece por primera vez en 1971, diseado por el profesor Niklaus Wirth
con el objetivo de facilitar el aprendizaje de la programacin a sus alumnos. Pascal fue muy
utilizado en la dcada de los 80 y los 90, y es el precursor de lenguajes como Delphi.

En 1972, Kenneth L. Thompson y Dennis M. Ritchie crean el lenguaje C en los laboratorios


Bell. Se llama lenguaje C porque proviene de uno anterior llamado lenguaje B, que a su vez
provena del lenguaje BCPL. En mi opinin, el lenguaje C ha sido el lenguaje de ms

repercusin en la historia de los ordenadores, y su sintaxis ha servido como punto de partida


para muchos de los lenguajes de programacin actuales como Java, C++ o C#. Hoy en da
sigue siendo muy utilizado en multitud de aplicaciones, incluido el sistema operativo Linux,
cuyo ncleo est escrito en su mayor parte en lenguaje C.

Los lenguajes Orientados a Objetos

A finales de la dcada de los 80 se populariz un nuevo paradigma de programacin


denominado Programacin Orientada a Objetos. Se trataba de una nueva forma de programar
que haca ms fcil escribir y mantener cdigo, porque se asemejaba ms con la forma de
pensar del cerebro humano. Pronto los lenguajes evolucionaron a sus respectivas versiones
orientadas a
objetos. As naci en 1986 el lenguaje C++ de manos de Bjarne Stroustrup, que parta del
lenguaje C y le aada la posibilidad de trabajar con objetos. Nace tambin en 1986 el
lenguaje Delphi (en sus principios denominado Object Pascal), como una evolucin de Pascal
para incluirle caractersticas de orientacin a objetos.

El lenguaje Java

He dedicado un apartado de este artculo al lenguaje de programacin Java por la importancia


que tiene actualmente en el mundo del desarrollo de software en general.

Java es un lenguaje orientado a objetos diseado en 1990 por James Gosling y Patrick
Naughton, de la empresa Sun Microsystems. El origen del nombre Java es bastante curioso,
se rumorea que sus creadores discutan sobre cmo llamar al lenguaje mientras tomaban
caf, y al final les
gust el nombre de la marca del caf que tomaban, el caf Java. Su desarrollo se realiz
siempre con un concepto en mente: Write Once, Run Anywhere. Esto significa que Java se
dise pensando en que un programa escrito en este lenguaje pudiese ser ejecutado en
cualquier mquina, no slo ordenadores, sino tambin cualquier dispositivo electrnico como
calculadoras, dispositivos mviles, porttiles, etc. Esta idea de un len

guaje universal ya haba sido abordada por el lenguaje C y su estandarizacin ANSI, pero la
realidad es que no se consigui hasta la llegada de Java.

En la actualidad el uso de Java ha sido muy impulsado por la amplia influencia de Internet,
debido a la universalidad de Java por la capacidad de sus programas para ser ejecutados en
cualquier tipo de mquina.

Evolucin de los Lenguajes de Programacin.

Los lenguajes ms utilizados actualmente

En la actualidad varios son los lenguajes de programacin ms utilizados. A pesar de su


antigedad, el lenguaje C sigue siendo muy utilizado, sobre todo en aplicaciones relacionadas
muy directamente con el hardware (software industrial, etc.). El propio sistema operativo Linux

est escrito en su mayor parte en lenguaje C. El lenguaje C++ tambin sigue siendo muy
utilizado, sobre todo en aplicaciones de escritorio orientadas al sistema operativo Windows.

El lenguaje COBOL tambin se utiliza mucho, sobre todo en entidades bancarias y grandes
empresas con sistemas mainframes para las que la fiabilidad del sistema es un factor clave, y
los costes y riesgos de migracin a otros lenguajes son hoy por hoy inasumibles. Al contrario
de las creencias populares que afirman que se trata de un lenguaje obsoleto y no utilizado,
algunos lo plantean como una buena alternativa para aquellos que buscan empleo.

Para consultas a bases de datos relacionales, el lenguaje SQL es el estndar indiscutible.


Toda base de datos relacional que se precie debe permitir realizar consultas en este lenguaje.

Para el desarrollo de aplicaciones orientadas a Internet, el lenguaje Java y los lenguajes de la


plataforma .Net de Microsoft (incluidos Visual Basic.Net y C#) se reparten la mayora del
mercado.

Existen otros lenguajes que cada vez cobran ms importancia, tales como Ruby, Perl, Phyton
o PHP. Asimismo, el lenguaje Javascript (no confundir con Java) tambin est jugando un
papel importante en el desarrollo de aplicaciones, impulsado por la amplia difusin de Internet
y tecnologas emergentes como Ajax para la creacin de interfaces ricas de usuario (RIA: Rich
Application Interface).

Segn www.langpop.com, sitio especializado en la medida de la popularidad y el uso de los


lenguajes de programacin, el siguiente grfico muestra los lenguajes ms populares en la
actualidad:

Distribucin de lenguajes de programacin segn su popularidad

El Futuro

Es indiscutible que la universalizacin del acceso a la informacin que ha permitido Internet


est cambiando la mayora de las cosas, incluida la forma en la que los seres humanos
interaccionamos entre nosotros y con nuestro medio. Los lenguajes de programacin de
ordenadores no son una excepcin, y se vern directamente influidos por la evolucin de la
Web, y de las grandes empresas que estn consolidndose como los lderes en el mercado
de la tecnologa de la informacin. Tecnologas emergentes como el cloud computing, los
entornos virtuales, los lenguajes visuales que permiten programar sin escribir ni una lnea de
cdigo, o las tendencias en la mejora de la experiencia de usuario en aplicaciones web con
tecnologas como Ajax, afectarn tambin de manera importante a la forma en la que los
seres humanos trasmitimos a los ordenadores lo que queremos que hagan.

El 20 de Abril de 2009 se anunci la compra de Sun Microsystems por parte de Oracle.


Muchos afirman que esta compra transformar la industria de las Tecnologas de la
Informacin, por lo que es probable que el futuro de los lenguajes de programacin (incluido
por supuesto Java, propiedad de Sun Microsystems) se vea tambin, de algn modo, afectado
por este evento.

Referencias

Wikipedia: Timeline Of Programming Languales

The Language List of Bill Kinnersley

The History of Programming Languages (O'Reilly)

Oracle Buys SUN

Computer languages history

Programming Language Popularity

Aprende Cobol y afronta la crisis con garantas

También podría gustarte