Lenguajes de Programacion

por Juan Carlos Castellanos Navarro. Tratare de explicar en forma resumida y abarcando lo mas importante sobre los lenguajes de programacion

Main

Plankalkul

1946

Konrad Zuse , un ingeniero Alemán mientras trabajaba en los Alpes de Bavaria, desarrolló el lenguaje Plankalkul, el cual, fue aplicado entre otras cosas para jugar al ajedrez.

Short Code

1949

Aparece Short Code, que viene a ser el primer lenguaje que fue usado en un dispositivo de cómputo electrónico, aunque se debe decir que se trata de un lenguaje traducido a mano.

El primer compilador

1951

Grace Hopper , trabajando para Remington Rand, comenzó el trabajo de diseño del primer compilador conocido ampliamente, el A-0, el cual, al ser liberado por la compañía en 1957, lo hizo con el nombre de MATH-MATIC.

auto-code

1952

Alick E. Glennie, durante su tiempo libre en la Universidad de Manchester, concibe un sistema de programación llamado AUTOCODE, que viene a ser un compilador muy rudimentario.

COBOL

1954

COBOL es uno de los lenguajes preferidos para el desarrollo de nuestras aplicaciones en las diversas plataformas para las que ofrecemos servicios. Ya sean aplicaciones desarrolladas en COBOL/400 para entorno nativo AS/400 o ACUCOBOL, RM/COBOL y MICROFOCUS/COBOL para entornos Unix y Windows nuestras aplicaciones desarrolladas en COBOL, algunas con más de 20 años de antiguedad, siguen vigentes y en constante evolución.

El lenguaje COBOL nació en 1954 y el principal motivo de su éxito es que nació como un lenguaje orientado a los negocios y con una sintaxis y semantica sencillas basadas en el idioma inglés. La gran cantidad de aplicaciones de negocio existentes desarrolladas en COBOL hacen que COBOL siga siendo todavía uno de los lenguajes más usados en la actualidad como se ha podido comprobar con la gran demanda de programadores COBOL que ha habido para la adaptación de aplicaciones al año 2000 y al euro.

LISP

1956

Alrededor de 1956 McCarthy entendió el papel central de un lenguaje de programación para su objetivo científico - la inteligencia artificial. Un trabajo consultor en 1957 le permitió experimentar con una combinación de notación algebraica (como esto es usado en el lenguaje FORTRAN para describir el cómputo aritmético). El experimento era acertado y la idea se hizo para él una base de pensamiento.Ese lenguaje fue LISP

FORTRAN

1957

aparece FORTRAN (FORmula TRANslating) sistema traductor de fórmulas matemáticas. Fue desarrollado por un equipo, al frente del cual se encontraba John Backus quien después vendría a contribuir en el desarrollo del compilador para el lenguaje ALGOL y de la notación usada para la especificación sintáctica de los lenguajes, conocida como BNF (Backus Naur Form).

ALGOL

1958 - 1968

ALGOL (ALGOrithmic Language) es uno de varios lenguajes de alto nivel, diseñado específicamente para la programación de cómputo científico. Comenzó a fines de la decada de 1950, primeramente formalizado en un reporte titulado 'ALGOL 58' y posteriormente progresó bajo los reportes 'ALGOL 60' y 'ALGOL 68'. Fue designado como un lenguaje universal por un comité internacional.

Su conferencia original que se llevó al cabo en Zurich, fue uno de los primeros intentos para resolver el problema de portabilidad del software. ALGOL es independiente al hardware donde se ejecuta, lo cual permitió a los diseñadores ser más creativos, sin embargo, esto hizo que la implementación del lenguaje fuera mucho más difícil.

fuente:http://fransiner.galeon.com/HISTORIA.HTML

LOS SESENTA

1960 - 1970

A partir de los años sesenta, empiezan a surgir diferentes lenguajes de programación, atendiendo a diversos enfoques, características y propósitos, que más adelante describiremos.

PL/I

1960

PL/I data desde 1960 cuando un comité liderado por IBM empezó a
desarrollar el proyecto. El lenguaje tuvo muchos aspectos innovadores en cuanto a la programación de la época,
pero a pesar de esto tuvo muchos problemas de implementación y de aceptación con los clientes y los
programadores. Por otra parte el lenguaje de programación COBOL consta de su propia historia la cual toma lugar
desde 1959 y nace como herramienta clave para el manejo estructurado de datos en cuanto a gestión de negocios se
trata. Como bien se sabe, todo bien tiene su contraparte y los mismos beneficios de COBOL se convierten en sus
defectos, ya que su enfoque específico y su poca flexibilidad le encapsulan y no le permiten abrirse a otras áreas.

Basic

1960

BASIC

Originalmente fue desarrollado por John Kemeny y Thomas Kurtz en Dartmouth Collage, a mediados de la década del 60. Rápidamente llamo la atención y fue adoptado por varios servicios comerciales de tiempo compartido, lo cual hizo que el lenguaje se difundiera ampliamente entre miles de usuarios de computadores. En breve todos los principales fabricantes de computadores ofrecieron sus propias versiones de BASIC para sus máquinas y el lenguaje llego a ser el más popular y ampliamente usado para tiempo compartido en los Estados Unidos.

SNOBOL

1962

Uno de los primeros lenguajes de procesamiento de listas desarrollado en los años 60 en los laboratorios Bell. Fue empleado para el procesamiento de textos y el desarrollo de compiladores. Es un sistema de manipulación de cadenas de caracteres, como COMIT, con el que se pueden realizar operaciones sobre cadenas de longitud variable que contienen información alfabética.

PROLOG

1965

PROLOG, ocurrido en 1970 en la Universidad de Marsella, Francia, en el seno de un grupo de investigación en el campo de la Inteligencia Artificial. La Programación Lógica tiene sus orígenes más cercanos en los trabajos de prueba automática de teoremas de los años sesenta. J. A. Robinson propone en 1965 una regla de inferencia a la que llama resolución, mediante la cual la demostración de un teorema puede ser llevada a cabo de manera automática. La resolución es una regla que se aplica sobre cierto tipo de fórmulas del Cálculo de Predicados de Primer Orden, llamadas cláusulas y la demostración de teoremas bajo esta regla de inferencia se lleva a cabo por reducción al absurdo. Actualmente, la programación lógica ha despertado un creciente interés que va mucho más allá del campo de la Inteligencia Artificial(IA) y sus aplicaciones. Los japoneses, con su proyecto de máquinas de la quinta generación, dieron un gran impulso a este paradigma de programación.

APL

1967

APL (A Programing Language, también conocido como Array Processing Language desde hace algunos años) es un lenguaje de programación interpretado desarrollado por Kenneth Iverson, de IBM, a finales de los años 60.

Es un lenguaje muy conciso, con una sintaxis muy sencilla. Está orientado a trabajos con matrices, con la que se pueden hacer todo tipo de operaciones lógicas o matemáticas. Incluso se pueden definir nuevas operaciones matriciales.

Es de una potencia tremenda. Una sola sentencia puede traducirse en miles de ellas en otros lenguajes, como por ejemplo Fortran. Como ejemplo, el lenguaje de simulación de circuitos, SIAL, ocupaba cerca de 25 000 sentencias en Fortran-Assembler y, al ser reescrito en APL, todo el programa se podía imprimir en dos folios.1 Por otra parte, a pesar de ser un lenguaje de tan alto nivel, también es capaz de manipular a escala de bits y tiene interfaces con lenguajes de programación de bajo nivel (C, ensamblador...) mediante los llamados procesadores auxiliares.

Tiene la propiedad de que desde una rutina se puede crear, compilar y ejecutar, en tiempo de ejecución, otras, lo que lo hace muy apropiado para la fabricación de compiladores e intérpretes.

SIMULA 67

1967

Esta versión surgió en 1967 es una extensión de Algol 60 bastante diferente a su predecesor (Simula I), que era básicamente un lenguaje de simulación. Simula 67 es un lenguaje de programación de propósito general que surge de los modelos de simulación. Parte del éxito de este lenguaje se debe a que se realizaron implementaciones para ordenadores IBM, DEC, Control Data y UNIVAC.

PASCAL

1969 - 1971

PASCAL

Es un lenguaje de programación de alto nivel de propósito general. Fue desarrollado por el profesor Niklaus Wirth (en Suiza), entre finales de los años 60 y principios de los 70. Wirth desarrolló este lenguaje con fines didácticos, por lo que es un lenguaje muy utilizado para aprender a programar por su sencillez y carácter estructurado.

ADA

1970 - 1983

ADA

Se desarrolló durante los años 70 por el Departamento de defensa de los EE.UU, para sus sistemas de computadoras, ya que la mayoría de sus aplicaciones estaban programadas en ensamblador (lenguaje máquina), por lo que dependían fuertemente de la máquina donde estuvieran instalados los programas, limitando así su portabilidad y reutilización.

En 1975, se formó un grupo para especificar los requisitos necesarios que debería tener el lenguaje de programación. Se estudiaron los diferentes lenguajes ya existentes (Pascal, FORTRAN, COBOL,... pero increíblemente no el C), llegando a la conclusión de que ninguno de ellos serviría para el propósito definido.

En 1977 se inició el diseño del nuevo lenguaje a través de un concurso. Se seleccionaron 4 proyectos denominados azul, rojo, amarillo y verde (para conservar así el anonimato). En 1978 se evaluaron dichos proyectos seleccionándose dos para la final. El proyecto que finalmente se seleccionó fue el verde que era el de la empresa Honeywell-Bell. Al lenguaje de programación se le llamó ADA en homenaje a Ada Byron, considerada la primera programadora de la historia. El estándar del lenguaje se aprobó en 1983.

C/C++

1972 - 1984

C/C++

Tras la aparición de los lenguajes B y BCPL, en los Laboratorios Bell, Ken Thompson utilizó varias características de estos lenguajes para desarrollar el sistema operativo Unix, en los años 70.

En 1972, Dennis Ritchie, finalizó su proyecto en los Laboratorios Bell creando el lenguaje de programación C, evolución del B, pero al contrario de su antecesor el C era un lenguaje de programación con tipos (es decir cada dato era de un tipo concreto).

A C se le conoce como el lenguaje de programación con el que se desarrolló Unix, y se ha utilizado para el desarrollo de casi todos los sistemas operativos actuales. Una gran ventaja de este lenguaje es su independencia del hardware en el que se va a utilizar. Enseguida se popularizó, con lo empezaron a surgir versiones, por lo que se estandarizó en 1989 por ANSI y en 1990 por ISO.

A partir del C, Bjarne Stroustrup, diseñó una extensión del lenguaje al que denominó C con clases, en 1984, y que finalmente se bautizó como C++ porque el operador ++ en C significa incrementar.

MODULA-2

1978

Modula-2 es un lenguaje de programación de ordenadores, de propósito general. Fue diseñado por Wirth, el creador de Pascal, intentando superar a este lenguaje, especialmente en lo relativo a modularidad.

Este concepto de módulo constituye el antecedente de las clases u objetos que se observan en el concepto moderno de Programación Orientada a Objetos (POO); sin embargo, la incapacidad de declarar múltiples instancias de los módulos, así como la ausencia de todo tipo de herencia, impiden afirmar que Modula-2 sea un lenguaje orientado a objetos propiamente dicho.

Modula-2 se utiliza principalmente en las universidades por su excelente adaptación a la enseñanza de lenguajes estructurados, pero en el ámbito laboral su difusión ha sido escasa frente al predominio de C, lo que ha contribuido a crear un distanciamiento entre universidad y mercado laboral.

Estas ventajas ya las incorporan la mayoría de las versiones recientes de Pascal (como Turbo Pascal o Free Pascal), de modo que la difusión comercial de Modula-2 ha sido muy escasa. Eso sí, se usa como lenguaje de introducción a la programación en algunas Universidades.

Desarrollo de la programacion orientada a objetos

1989 - 1995

Los objetos son entidades que tienen un determinado estado, comportamiento (método) e identidad:

El estado está compuesto de datos o informaciones; serán uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
El comportamiento está definido por los métodos o mensajes a los que sabe responder dicho objeto, es decir, qué operaciones se pueden realizar con él.
La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).

Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.

Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una programación estructurada camuflada en un lenguaje de programación orientado a objetos.

La POO difiere de la programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada solo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.
Origen

Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de Cómputo Noruego en Oslo. En este centro se trabajaba en simulaciones de naves, que fueron confundidas por la explosión combinatoria de cómo las diversas cualidades de diferentes naves podían afectar unas a las otras. La idea surgió al agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamientos. Fueron refinados más tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versión fue escrita sobre Basic) pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar "sobre la marcha" (en tiempo de ejecución) en lugar de tener un sistema basado en programas estáticos.

La programación orientada a objetos se fue convirtiendo en el estilo de programación dominante a mediados de los años ochenta, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.

JAVA

1993 - 1995

En 1990, la empresa Sun Microsystems decidió crear un lenguaje de programación para la programación de electrodomésticos en un proyecto llamado "Green Project", dirigido por James Goslin. Pero este proyecto fracasó en 1993, con lo que Sun se centró en otros proyectos como el lenguaje de programación Oak. Durante esta época es cuando empieza el boom de internet al disponer de un entorno gráfico. El lenguaje Oak (antecesor del Java) se puso en libre distribución, y tras una supuesta visita a una cafetería, James Goslin estableció el nombre definitivo: Java (que significa café en el argot americano). Y el 23 de mayo de 1995, Sun anuncia oficialmente el nacimiento del nuevo lenguaje de programación de propósito general (no solo para aplicaciones de internet).

El lenguaje deriva mucho de su sintaxis de C y C++, pero tiene menos facilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede correr en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora. Java es un lenguaje de programación de propósito general, concurrente, basado en clases, y orientado a objetos, que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir del 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados

C#

2002

C#

Este Lenguaje, desarrollado por Microsoft por un equipo dirigido por Andres Helsberj y Scott Wiltamuth, se diseño en específico para la plataforma .Net como un lenguaje que permitiera a los programadores migrar con facilidad hacia .Net. Tiene sus raíces en Java, C y C++; adapta las mejores características de cada uno de estos lenguajes y agrega características propias. C# está orientado a objetos y contiene una poderosa bibiloteca de clases (FCL por sus siglas en Ingles; FrameWork Class Library), mejor conocida como Biblioteca de Clases de Framework, que consta de componentes preconstruidos que permiten a los programadores desarrollar aplicaciones con rapidez, además este lenguaje es apropiado para desarrollar apliaciones de escritorio (Windows Forms), asi como Smart Clients, Aplicaciones Web (ASP .Net), Aplicaciones Móviles, entre otras.

C# es un lenguaje de programación visual controlado por eventos, en el cual se crean programas mediante el uso de un Entorno de Desarrollo Integrado (IDE Por sus siglas en Inglés; Integrated Development Environment).