Loading AI tools
De Wikipedia, la enciclopedia libre
Este artículo trata sobre la historia de los lenguajes de programación.[1]
Los primeros lenguajes de programación preceden a la computadora moderna. En un inicio los lenguajes eran códigos.
La máquina del telar de Jacquard, creada en 1801, utilizaba los orificios en tarjetas perforadas para representar los movimientos de un brazo de la máquina de tejer, con el objetivo de generar patrones decorativos automáticamente.
Durante un período de nueve meses entre 1842 y 1843, Ada Lovelace tradujo las memorias del matemático italiano Luigi Menabrea acerca de la nueva máquina propuesta por Charles Babbage, la Máquina Analítica. Con estos escritos, ella añadió unas notas en las cuales especificaba en detalle un método para calcular los números de Bernoulli con esta máquina.
Herman Hollerith se percató de que podía codificar la información en tarjetas perforadas cuando observó a los conductores de trenes que identificaban a los pasajeros según el orificio que hacían en su respectivo ticket. En 1890, la máquina tabuladora de Herman Hollerith fue utilizada para procesar los datos del censo de Estados Unidos utilizando tarjetas perforadas.
Los primeros códigos de computadora estaban especializados según sus aplicaciones. En las primeras décadas del siglo XX, los cálculos numéricos estaban basados en los números decimales. Con el paso del tiempo, se dieron cuenta de que la lógica podía ser representada con números, no sólo con palabras. Por ejemplo, Alonzo Church fue capaz de expresar el cálculo lambda a través de fórmulas. La máquina de Turing estableció las bases para almacenar programas como datos en la arquitectura de von Neuman de una computadora. Sin embargo, a diferencia del cálculo lambda, el código de Turing no serviría satisfactoriamente como base para lenguajes de más alto nivel- su principal uso es en el análisis riguroso en la complejidad algorítmica.
Como muchos “primeros” en la historia, el primer lenguaje de programación moderno es difícil de identificar. Desde un inicio, las restricciones de hardware definían el lenguaje. Las tarjetas perforadas permitían 80 columnas, pero algunas de estas serían utilizadas para una clasificación de cada tarjeta. FORTRAN incluía algunas palabras reservadas provenientes del Inglés, como “IF”, “GOTO” (go to) y “CONTINUE”. El uso del tambor magnético para la memoria implicaba que los programas informáticos tuvieran que estar intercalados con las rotaciones del tambor. Por lo tanto los programas eran muy dependientes del hardware.
Para algunas personas, lo que sería el primer lenguaje de programación moderno depende de cuánto poder y legibilidad humana se requería antes de que se concediera el estado de "lenguaje de programación". Tanto el telar de Jacquard como la Máquina Diferencial de Babbage, tenían lenguajes muy simples y extremadamente limitados para describir las acciones que estas máquinas realizaran. Se puede incluso considerar los agujeros perforados en los rollos de pianola como un limitado lenguaje de dominio específico, a pesar de no estar diseñado para el consumo humano.
En la década de 1940 fueron creadas las primeras computadoras modernas, con alimentación eléctrica. La velocidad y capacidad de memoria limitadas forzaron a los programadores a escribir programas, en lenguaje ensamblador muy afinados. Finalmente se dieron cuenta de que la programación en lenguaje ensamblador requería de un gran esfuerzo intelectual y era muy propensa a errores.
En 1948, Konrad Zuse publicó un artículo acerca de su lenguaje de programación Plankalkül. 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 período se encuentran:
En los cincuenta, los tres primeros lenguajes de programación modernos, cuyos descendientes aún continúan siendo utilizados, son:
Otro hito a finales de 1950 fue la publicación, por un comité Americano y Europeo de científicos de la computación, 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 programación:
Otra innovación, relacionada con esto, fue cómo el lenguaje fue descrito:
Algol 60 influenció particularmente en el diseño de lenguajes posteriores, de los cuales algunos se hicieron más populares. Los grandes sistemas de Burroughs fueron diseñados para ser programados en un subconjunto extendido de Algol.
Las ideas fundamentales de Algol se continuaron, produciendo Algol 68:
Las variadas pero poco usadas características de Algol 68 (por ejemplo, bloques simultáneos y paralelos) y su complejo sistema de atajos sintácticos y coerciones automáticas de tipo lo hicieron impopular entre los ejecutores y se ganó una reputación de ser difícil. Niklaus Wirth salió del comité de diseño para crear el sencillo lenguaje Pascal.
Algunos de los lenguajes importantes que fueron desarrollados en este período incluyen:
El período comprendido entre finales de 1960 y finales de 1970 trajo un gran florecimiento de lenguajes de programación. La mayoría de los paradigmas de lenguajes de programación más importantes y actualmente en uso se inventaron en este período:
Cada uno de estos lenguajes generó toda una familia de descendientes, y los lenguajes más modernos cuentan al menos uno de ellos en su ascendencia.
En los años 60 y 70 también suscitó un debate considerable sobre los méritos de la "programación estructurada", que esencialmente significaba programación sin el uso de GOTO. Este debate estaba estrechamente relacionado con el diseño del lenguaje: algunos lenguajes no incluían GOTO, lo que obligó a la programación estructurada en el programador. Aunque el debate se recrudecía acaloradamente en ese momento, casi todos los programadores están de acuerdo en que, incluso en lenguajes que ofrecen GOTO, es una mala práctica de programación usarlo, excepto en raras circunstancias. Como resultado de ello, las generaciones posteriores de diseñadores de lenguajes han encontrado el debate sobre programación estructurada tedioso e incluso desconcertante.
Algunos lenguajes importantes que se desarrollaron en este período fueron:
La década de 1980 fueron años de consolidación relativa en los lenguajes imperativos. En vez de inventar nuevos paradigmas, se comenzó a trabajar a partir de las ideas inventadas en la década anterior. C++ combinaba la programación orientada a objetos y la programación de sistemas. El gobierno de Estados Unidos estandarizó Ada, un lenguaje de programación de sistemas destinado a ser utilizado por contratistas de defensa. En Japón y en otras partes, se gastaron enormes sumas investigando los llamados lenguajes de programación de quinta generación que incorporaban construcciones de la programación lógica. La comunidad de los lenguajes funcionales llevaron a cabo la estandarización de ML y Lisp. La investigación en Miranda, un lenguaje funcional, con evaluación perezosa, comenzó a tomar fuerza en esta década.
Una nueva tendencia importante en el diseño de lenguajes era un mayor enfoque en la programación de sistemas a gran escala a través del uso de módulos, una organización a gran escala de unidades de código. Modula, Ada, y ML desarrollaron sistemas de módulos notables en la década de 1980. Los sistemas de módulos eran relacionados con frecuencia con construcciones de programación genéricas, que serían, en esencia, módulos parametrizados (véase también polimorfismo en programación orientada a objetos).
Aunque no aparecían nuevos paradigmas de lenguajes de programación 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 programación orientada a objetos para sistemas distribuidos.
La década de 1980 también trajo avances en la implementación de lenguajes de programación. El movimiento de RISC en la arquitectura de computadoras postulaba que el hardware debía estar diseñado para los compiladores más que para los programadores de ensamblador humanos. Con la ayuda de las mejoras en la velocidad del procesador, permitiendo técnicas de compilación cada vez más agresivas, el movimiento RISC despertó un mayor interés en la tecnología de compilación de los lenguajes de alto nivel.
Las tecnologías de los lenguajes continuaron sobre estas líneas entrando en la década de 1990.
Algunos lenguajes importantes que se desarrollaron en este período son:
El rápido crecimiento de Internet en la década de 1990 fue el siguiente gran acontecimiento histórico para los lenguajes de programación. Con la apertura de una plataforma totalmente nueva para los sistemas informáticos, Internet creó una oportunidad adoptar nuevos lenguajes. En particular, el lenguaje de programación JavaScript se hizo popular debido a su pronta integración 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 década de 1990 no vio ninguna novedad fundamental en los lenguajes imperativos, pero sí mucha recombinación y la maduración de viejas ideas. Esta era comenzó la difusión de los lenguajes funcionales. Una filosofía de conducción grande era la productividad del programador. Surgieron muchos lenguajes de “aplicaciones de desarrollo rápido” (RAD), los cuales usualmente venían con un IDE, recolector de basura, y eran descendientes de lenguajes anteriores. Todos estos lenguajes eran orientados a objeto. Estos incluían Object Pascal, Visual Basic y Java. Java, en particular, recibió mucha atención. Pero más radicales e innovadores que los lenguajes de RAD eran los nuevos lenguajes de script. Estos no descendían directamente de otros lenguajes y ofrecieron nuevas sintaxis e incorporación más liberal de otras características. Muchos consideran estos lenguajes de script más productivos que los lenguajes de RAD, aunque esto se debe a menudo a que es más difícil escribir y mantener largos programas que pequeños programas simples. Sin embargo, no es menos cierto que los programas de script llegaron para convertirse en los más prominentes en la conexión con la Web.
Algunos lenguajes importantes que se desarrollaron en este período son:
La evolución de los lenguajes de programación continúa, tanto en la industria como en investigación. Algunas de las tendencias actuales incluyen:
Algunos lenguajes importantes desarrollados durante este período incluyen:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.