miércoles, 3 de enero de 2018

Historia de los lenguajes de programación

Los lenguajes de programación están clasificados en tres grandes grupos: lenguajes maquina, lenguajes de ensamblador, y lenguajes de alto nivel. Los lenguajes máquina son los únicos lenguajes que puede entender una CPU. Las instrucciones de estos lenguajes están codificadas en binario a muy bajo nivel. Cada tipo de CPU interpreta estos bits de forma diferente y existe un lenguaje por cada máquina. Un programa escrito en lenguaje maquina puede lucir de la siguiente forma:

10110011   01111010
10011111   01011100   10111011
00011001   11010001
10010100   00011001   11010001
10010000   11010001   10010110

Un nivel más arriba, encontramos los lenguajes de ensamblador, los cuales proporcionan una serie de símbolos para escribir instrucciones simples a la computadora. Un programa en ensablador puede lucir de la siguiente forma:

MV     0,         SUM,
MV     NUM,  AC
ADD   SUM,   AC
STO    SUM    TOT

Sin embargo, este conjunto de instrucciones es imposible de entender para la computadora y por esto se hace necesario un programa intermedio que traduzca las instrucciones a binario, este programa se denomina ensamblador.

Tomado de Wikipedia - Lenguaje de alto nivel

Por otro lado, los lenguajes de programacion de alto nivel permiten un nivel de abstraccion más alto permitiendo poder escribir programas para cualquier tipo de computadora independientemente del hardware. Estos lenguajes al igual que el anterior grupo necesitan un programa intermedio que traduzca las instrucciones de alto nivel a un lenguaje de mas bajo nivel de tipo ensamblador, este programa se denomina compilador. Un lenguaje de programacion de alto nivel puede lucir de la siguiente forma:

X = (Y + Z) / 2

Con lo cual, la programacion llega a ser un poco más parecida al lenguaje natural que utilizamos para comunicarnos pero mucho mas formal y sin ambiguedades. Uno de los primeros lenguajes de programacion de alto nivel fue FORTRAN (FORmula TRANslator) el cual fue diseñado para procesar instrucciones matemáticas. Otro lenguaje muy popular en los inicios de la progamacion de alto nivel fue COBOL (COmmon Business-Oriented Languaje) diseñado para el procesamiento de datos en procesos de negocio. FORTRAN y COBOL fueron desarrollados a finales de los años 50 y comienzos de los años 60. Algunos lenguajes de esta época fueron los siguientes:

1951 – Regional Assembly Language
1952 – Autocode
1954 – IPL (forerunner to LISP)
1955 – FLOW-MATIC (led to COBOL)
1957 – FORTRAN (First compiler)
1957 – COMTRAN (precursor to COBOL)
1958 – LISP
1958 – ALGOL 58
1959 – FACT (forerunner to COBOL)
1959 – COBOL
1959 – RPG
1962 – APL
1962 – Simula
1962 – SNOBOL
1963 – CPL (forerunner to C)
1964 – Speakeasy (computational environment)
1964 – BASIC
1964 – PL/I
1966 – JOSS
1967 – BCPL (forerunner to C)

Más adelante aparece el lenguaje BASIC (Benginners All-porpose Symbolic Instructional Code) desarrollado principalmente para enseñar a programar a los estudiantes y el cuál fue el primer lenguaje diseñado para microcomputadoras. Junto con PASCAL, otro lenguaje muy popular de enseñanza, sentaron las bases de la programación tal y como la conocemos actualmente.

Breve historia de las computadoras - Cómo surgieron las microcomputadoras ? Cuáles fueron las denominadas generaciones de computadoras ...

A comienzos de los años 70 AT&T Bells Labs desarrolla el lenguaje de programacion C. Más tarde, a comienzos  de los años 80, influenciado por el paradigma de programacion orientado a objetos se desarrolla C++ que incluye soporte a dicho paradigma. Sin embargo, el concepto de la POO (Object Oriented programming) fue implementado desde mucho antes (comienzos de los 60) por un lenguaje llamado Simula. Otro lenguje que implementa este paradigma es Smalltalk (desarrollado por Xerox PARC). Algunos lenguajes representativos de esta época fueron los siguientes:

1968 – Logo
1969 – B (forerunner to C)
1970 – Pascal
1970 – Forth
1972 – C
1972 – Smalltalk
1972 – Prolog
1973 – ML
1975 – Scheme
1978 – SQL (a query language, later extended)

A lo largo de los años 80 hubo un gran interés en consolidar los lenguajes imperativos más que desarrollar nuevos paradigmas de programación. El gobierno de los Estados Unidos estandarizó el lenguaje de programación Ada, mientras que Japón gastó tiempo y dinero en lo que llamó "La quinta generación de lenguajes de programación", los cuáles incorporaban constructores lógicos de lenguaje. Algunos lenguajes representativos de esta época fueron los siguientes:

1980 – C++ (as C with classes, renamed in 1983)
1983 – Ada
1984 – Common Lisp
1984 – MATLAB
1984 - FoxPro (as FoxBASE, later developing into Visual FoxPro
1985 – Eiffel
1986 – Objective-C
1986 – LabVIEW (Visual Programming Language)
1986 – Erlang
1987 – Perl
1988 – Tcl
1988 – Wolfram Language (as part of Mathematica, only got a separate name in June 2013)
1989 – FL (Backus)

Una gran tendendencia que se presentó fue la de desarrollar sistemas a gran escala a través del uso de módulos, o unidades de código organizadas. Algunos sistemas modulares fueron desarrollados en lenguajes como Ada, Modula y ML.

A mediados de los años 90, con la rápida creciente del internet nacieron lenguajes como JavaScript y PHP. Rasmus Lerdorf, creador de PHP, incluso mencionó que su intención no fue crear un lenguaje de programación, las cosas se dieron por casualidad dada la necesidad de modularizar su página web personal.

Introducción al Lenguaje PHP - Qué puede hacer PHP ? cómo surgió este lenguaje ?

Influenciados por la filosofía  RAD (Rapid application development), emergieron algunos lenguajes que venían con IDE (Entorno integrado de desarrollo), garbage collection (manejo automático de memoria), tales como Java y Visual Basic. Esta misma filosofía propició el desarrollo de los lenguajes de scripting, los cuales tenían la ventaja de realizar tareas con menos líneas de código, lo cual se traducía en mayor mantenibilidad del código y portabilidad. Algunos lenguajes de este tipo son Python, Ruby, R e incluso el mismo PHP. Otros lenguajes desarrollados durante este periodo fueron los siguientes:

1990 – Haskell
1991 – Python
1991 – Visual Basic
1993 – Ruby
1993 – Lua
1993 – R
1994 – CLOS (part of ANSI Common Lisp)
1995 – Ada 95                                                 
1995 – Java
1995 – Delphi (Object Pascal)
1995 – JavaScript
1995 – PHP
1997 – Rebol

Finalmente, las tendencias actuales apuntan a la programación funcional, y el uso de mecanismos de modularidad como traits, mixins, delegates y aspects. El uso de XML para las interfaces gráficas ha tomado también gran popularidad en lenguajes como XAML y XUL y parcialmente en el desarrollo Android. Algunos lenguajes de la nueva era son los siguientes:

2000 – ActionScript
2001 – C#
2001 – D
2002 – Scratch
2003 – Groovy                                             
2003 – Scala
2005 – F#
2006 – PowerShell
2007 – Clojure
2009 – Go
2010 – Rust
2011 – Dart
2011 – Kotlin
2011 – Red
2012 – Julia
2014 – Swift
2016 – Ring

Con el desarrollo de la computación cuántica, incluso se ha escuchado comunicados oficiales de lenguajes de programación cuánticos, debido a que este tema es algo extenso también, decidimos dejar a tarea del lector la investigación de este tipo de lenguajes. Hasta la próxima!.


Referencias

- C. Wu, Thomas (2010). An introduction to Object-Oriented Programming with Java™ 5ed. NY: Mc Graw Hill.
- History of programming languages. (2018, January 3). In Wikipedia, The Free Encyclopedia. Retrieved 04:51, January 4, 2018, from https://en.wikipedia.org/w/index.php?title=History_of_programming_languages&oldid=818389327