Historia de los Lenguajes de Programación

  • Primer lenguaje de programación

    Primer lenguaje de programación
    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.
  • Máquina Analítica

    Máquina Analítica
    El británico Charles Babbage, conocido como el Padre de las computadoras, diseñó una máquina totalmente mecánica capaz de realizar cualquier tipo de cálculo matemático: la Máquina Analítica. Ada Lovelace fue la primer persona que se interesó por la máquina de Babbage y desarrolló un algoritmo capaz de ser utilizado en ella. De allí que Ada Lovelace sea considerada como la primer programadora de computadoras de la historia.
  • Codificación de datos del censo de tarjetas perforadas

    Codificación de datos del censo de tarjetas perforadas
    Herman Hollerith se percató de que podía codificar la información en tarjetas perforadas cuando observó a los conductores de trenes codificar la apariencia de los tickets del tren con la posición de los agujeros perforados en estos. Para ello, en 1890 Hollerith codificó los datos del censo en tarjetas perforadas con la máquina tabuladora de su invención.
  • Máquina de Turing

    Máquina de Turing
    Esta máquina inventada por el inglés Alan Turing estableció las bases para almacenar programas. Esta máquina manipula símbolos sobre una tira de cinta de acuerdo a una tabla de reglas.
  • Plankalkül

    Plankalkül
    Fue el primer lenguaje de programación que en su tiempo, fue considerado como uno de alto nivel, creado por el ingeniero alemán Konrad Zuse, Su objetivo era desarrollar un método sofisticado para el desarrollo de las tareas que el equipo debe hacer.
  • ENIAC

    ENIAC
    Creada por los estadounidenses John William Mauchly y John Presper Eckert. ENIAC, con el fin de resolver los problemas de balística de Estados Unidos. Era una computadora que se programaba con interruptores, se ejecutaban sus procesos y operaciones mediante instrucciones de maquina. y era preciso reescribir el sistema entero para cada nuevo programa. Su lenguaje de programación era muy tedioso ya que estaba compuesta por tubos de vacío, que se dañaban fácilmente.
  • Modelo de Von Neumann

    Modelo de Von Neumann
    El matemático húngaro John von Neumann, desarrolló una nueva técnica que establecía que las instrucciones complejas se debían utilizar para controlar el hardware simple, permitiendo que se pudiese reprogramar más rápidamente (la técnica del compartir-programa).
  • Autocode

    Autocode
    La primera autocodificación y su compilador fueron desarrollados por el británico Alick Glennie en la Universidad de Manchester y es considerado por algunos como el primer compilado lenguaje de programación. Su objetivo principal era hacer que la programación de una máquina,conocida por su código en particular difícil, fuera comprensible.
  • FLOW-MATIC

    FLOW-MATIC
    Es el primer lenguaje de alto nivel orientado al ámbito de gestión. Fue creado por la estadounidense Grace Murray Hopper para UNIVAC, la primera computadora comercial. Estableció el concepto de lenguajes de programación basados en palabras del lenguaje natural; también desarrolló los primeros compiladores de la historia, el A-0 (Math Matic) y el B-0
  • IPL

    IPL
    Fue el origen del lenguaje de programación LISP.
    Allen Newell, D. Shaw y F. Simon, diseñaron éste, el primer lenguaje de procesamiento de listas, en la Universidad de Carnegie-Mellon. Partieron de la necesidad de disponer de un programa para realizar demostraciones de lógica matemática.
  • FORTRAN

    FORTRAN
    (Formula Tanslator). Creado por el científico estadounidense John Backus tomando como base el programa SPEEDCODING, desarrollado por él mismo. Este primer compilador está destinado a la computación científica de alto nivel, matemáticas y estadísticas.
  • LISP

    LISP
    (List Proccesing). Fue creado por John McCarthy para la investigación de la inteligencia artificial. LISP contiene listas encadenadas, que son una de las estructuras de datos, y su código fuente en sí mismo está compuesto de listas.Los programas de LISP pueden manipular el código fuente como una estructura de datos, dando lugar a los macro sistemas que permiten a los programadores crear un nuevo orden o sintaxis de lenguajes de programación de dominio específico alojados en el Lisp.
  • RPG (Report Program Generator)

    RPG (Report Program Generator)
    Fue desarrollado por IBM con el fin de generar informes comerciales o de negocios. Dentro de sus características se encuentra que está orientado a la producción de informes, realiza cálculos fácilmente y emplea hojas de codificación diferentes para la descripción de ficheros, entrada de datos, salida de resultados, etc.
  • COBOL

    COBOL
    Fue creado en conjunto por grandes empresas del sector informático, con el objetivo de que fuera universal y procesara grandes cantidades de información para poder utilizarlo en cualquier ordenador y que estuviera orientado principalmente a los negocios y a las funciones administrativas de entidades bancarias. Este lenguaje de programación, fue dotado de unas excelentes capacidades de autodocumentación, además emplea por defecto números en base diez y posee una sintaxis muy similar al inglés.
  • SNOBOL

    SNOBOL
    Fue diseñado en los Laboratorios Bell por David J. Farber, Ralph E. Griswold y Ivan P. Polonsky. Es un lenguaje de alto nivel orientado a cadenas de textos. Fue diseñado expresamente para la portabilidad así que fue rápidamente exportado a otras plataformas. Dispone de estructuras de control muy simples, pero proporciona un manejo de cadenas de caracteres muy potente, comparable a las expresiones regulares.
  • Simula

    Simula
    Fue creado por los científicos en informática noruegos Ole Johan Dahl y Kristen Nygaard. Simula, es un lenguaje de programación orientado a objetos. Fue el primero de este tipo que incluyó el concepto de clase. Así fue como se popularizaron términos como clases, objetos, instancias, herencia, polimorfismo, etc.
  • CPL (Combined Programming Languaje)

    CPL (Combined Programming Languaje)
    Fue desarrollado conjuntamente entre el Laboratorio de Matemática en la Universidad de Cambridge y la Unidad Computación de la Universidad de Londres. Este lenguaje de programación era grande, moderadamente elegante y complejo. CPL resultó mucho para las pequeñas computadoras y las inmaduras tecnologías de compilación de la época.ero el lenguaje nunca fue muy popular y pareció haber desaparecido sin rastros en la misma década.
  • PL/1

    PL/1
    Fue propuesto por IBM para responder a las necesidades a las aplicaciones comerciales y científicas de su misma plataforma. Poseía múltiples innovaciones, que incluían multiprocesamiento, recursión, estructuras de control modernas, facilidades para la puesta a punto, asignación dinámica de espacio para estructuras de datos y procedimientos genéricos, pero a pesar te tener todas estas características, los potenciales usuarios del lenguaje prefirieron no adoptarlo.
  • BASIC

    BASIC
    Fue diseñado por el profsorJohn George Kemeny y el científico de la computación Thomas Eugene Kurtz del Dartmouth College en New Hamspire, con la finalidad de enseñar a programar a principiantes, ya que como su nombre lo dice, es muy sencillo, básico. Esto lo hacían utilizando terminales de computador de tiempo compartido.
    Microsoft desarrolló este lenguaje de programación en el primer ordenador personal.
  • Logo

    Logo
    Fue diseñado por Danny Bobrow, Wally Feurzeig y Seymour Papert, basándose en características del lenguaje LISP. Logo fue creado con el objetivo de usarlo para enseñar programación y poder usarlo para enseñar la mayoría de los principales conceptos de programación, ya que proporciona soporte para manejo de listas, archivos y entrada/salida. Básicamente consiste en darle a los niños retos intelectuales que puedan ser resueltos mediante el desarrollo de programas en Logo.
  • B

    B
    Fue diseñado y desarrollado en los Laboratorios Bell por Kenneth Thomson con contribuciones de Dennis Ritchie. Este lenguaje fue el antecesor del lenguaje C. B sólo tenía un tipo de dato,s que correspondía con una palabra de máquina y ofrecía operadores que permitían obtener la dirección de una determinada variable, o escribir en la dirección apuntada por una variable puntero.
  • Forth

    Forth
    Fue ideado por Charles H. Moore y Elisabeth Rather en el National Radio Astronomy Observatory de Kitt Peak, Arizona. Inicialmente fue diseñado para aplicarlo en el campo de la astronomía, pero después pasó a ser aplicable en cálculos de probabilidad, bases de datos, análisis estadísticos y hasta financieros. Este lenguaje es procedimental, estructurado, imperativo, reflexivo, basado en una estructura de datos. Utiliza una pila de datos para pasar los argumentos entre las palabras.
  • Pascal

    Pascal
    Fue desarrollado por el profesor suizo Niklaus Wirth con la finalidad de crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando una programación estructurada, sencilla y rápida. El código está dividido en partes fácilmente legibles llamadas funciones y el tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado. Con la programación en Pascal, se pueden realizar desde programas formales, rutinas, o video juegos.
  • Smalltalk

    Smalltalk
    Sus orígenes se encuentran en las investigaciones de Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg. Es un lenguaje orientado hacia objetos que se comunican entre sí. Permite realizar tareas de computación mediante la interacción con un entorno de objetos virtuales ya que en Smalltalk todo es un objeto, incluidos los números reales o el propio entorno Smalltalk.
  • C

    C
    Fue desarrollado por los científicos de la computación estadounidenses Dennis Ritchie y Ken Thompson. Es un lenguaje de tipos de datos estáticos, débilmente tipificado, de medio nivel pero con muchas características de bajo nivel. Tiene las estructuras típicas de los lenguajes de alto nivel pero, a su vez, posee construcciones del lenguaje que permiten un control a muy bajo nivel. C es muy flexible, ya que permite programar con múltiples estilos y posee un conjunto pequeño de palabras clave.
  • Prolog

    Prolog
    Fue diseñado por los franceses Alain Colmerauer y Philippe Roussel, con el objetivo de programar artefactos electrónicos mediante el paradigma lógico con técnicas de producción final interpretada, es decir, el primer lenguaje de programación lógica. Es bastante conocido en el área de la ingeniería informática para investigación en inteligencia artificial. Prolog está orientado a la especificación de relaciones para responder consultas, entonces Prolog es similar a un sistema de base de datos.
  • ML (Meta Lenguaje)

    ML (Meta Lenguaje)
    Fue desarrollado por el científico en informática británico Robin Miner en la Universidad de Edimburgo. Sus caracteríticas son la evaluación por valor, álgebra de funciones, manejo automatizado de memoria mediante la recolección de basura, polimorfismo parametrizado, análisis de estático de tipos, tipos de datos algebraicos, llamada por patrones y manejo de excepciones. Esta combinación particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles.
  • Scheme

    Scheme
    Fue desarrollado por Guy L. Steele y Gerald Jay Sussman. Scheme fue el primer dialecto de Lisp que usó un ámbito estático o léxico (en lugar de dinámico) de forma exclusiva. También fue uno de los primeros lenguajes de programación con continuaciones explícitas. Este lenguaje ofrece también gestión automática de memoria. La filosofía de Scheme es minimalista. Su objetivo es evitar las debilidades y restricciones que hacen necesaria su adición.
  • SQL

    SQL
    Fue desarrollado por IBM para Oracle. Es un lenguaje específico para el acceso a bases de datos relacionales que permite determinar diversos tipos de operaciones en ellas. na de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como hacer cambios en ellas.
  • C++

    C++
    Fue diseñado por el científico en la computación danés Bjarne Stroustrup. La intención de su creación fue el extender el lenguaje de programación C, lenguaje que permiten la manipulación de objetos. Posteriormente se añadieron facilidades de programación genérica, que se sumaron a los paradigmas de programación estructurada y programación orientada a objetos. Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.
  • Ada

    Ada
    Fue diseñado por el francés Jean Ichbiah por encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje orientado a objetos y fuertemente tipado de forma estática. Fue diseñado con la seguridad en mente y con una filosofía orientada a la reducción de errores comunes y difíciles de descubrir. Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecución. Ada se usa principalmente en entornos de gran seguridad como la defensa y la aeronáutica,
  • MATLAB

    MATLAB
    Fue creado por el matemático y programador de computadoras Cleve Moler. Este lenguaje permite operaciones de vectores y matrices, funciones, cálculo lambda, y programación orientada a objetos. Puede ser interpretado y ejecutarse tanto en el entorno interactivo, como a través de un archivo de script (archivos *.m). Principalmente MATLAB es una herramienta de software matemático que ofrece un entorno de desarrollo integrado con un lenguaje de programación propio.
  • Common Lisp

    Common Lisp
    Este lenguaje pertenece a la familia de lenguajes Lisp. Fue desarrollado para estandardizar las variantes desviadas del Lisp que lo precedió, no es una implementación sino una especificación del lenguaje. Common Lisp es un lenguaje multiparadigma de propósitos generales. Soporta una combinación de paradigmas de programación como procedimental, funcional, y orientada al objeto. Como un lenguaje de programación dinámica, facilita el desarrollo de software de una manera evolutiva y amplia.
  • Eiffel

    Eiffel
    Fue diseñado por el investigador francés Bertrand Meyer y Software Eiffel. Dentro de sus características se encuentra que es orientado a objetos, tiene diseño por contrato, gestión de memoria automática, programación genérica con y sin restricciones, tipado estático, agentes u objetos que agrupan a los cálculos, estrechamente relacionados con la clausura y el cálculo lambda y seguridad en ausencia de tipos, o protección estática contra las llamadas a referencias a null,
  • Erlang

    Erlang
    Fue diseñado por la compañía Ericsson. Este lenguaje es concurrente, es decir, es simultáneo en la ejecución de múltiples tareas interactivas. El subconjunto de programación secuencial de Erlang es un lenguaje funcional, con evaluación estricta, asignación única, y tipado dinámico. Proporciona el cambio en caliente de código de forma que éste se puede cambiar sin parar el sistema. La creación, gestión y comunicación de procesos es sencilla en Erlang,
  • Objective-C

    Objective-C
    Fue creado por Brad Cox y Tom Love en su compañía StepStone. Este lenguaje de programación es orientado a objetos creado como un superconjunto de C para que se implementase un modelo de objetos parecido al de Smalltalk. Sus características son: sentencias de control de flujo, tipos de datos fundamentales, estructuras y punteros, conversiones implícitas y explícitas entre tipos, las funciones y su sintaxis especial.
  • Perl

    Perl
    Fue diseñado por el programador estadounidense Larry Wall. La estructura completa de Perl deriva ampliamente del lenguaje C. Perl es un lenguaje imperativo, con variables, expresiones, asignaciones, bloques de código delimitados por llaves, estructuras de control y subrutinas. Perl hace el tipificado automático de datos y la gestión de memoria. Perl tiene muchas y variadas aplicaciones, gracias a la disponibilidad de muchos módulos estándares y de terceras partes.
  • Tcl

    Tcl
    Fue creado por el estadounidense John Ousterhout. Es un lenguaje de script que ha sido concebido con una sintaxis sencilla para facilitarse su aprendizaje, sin detrimento de la funcionalidad y expresividad. Se utiliza principalmente para el desarrollo rápido de prototipos, aplicaciones "script", interfaces gráficas y pruebas. Tcl es un lenguaje interpretado, y su código puede ser creado y modificado dinámicamente. Sus reglas sintácticas son extremadamente simples.
  • Haskell

    Haskell
    Fue diseñado por el matemático y lógico estadounidense Haskell Curry. Este lenguaje es estandarizado multi-propósito puramente funcional con semánticas no estrictas y fuerte tipificación estática. Como lenguaje de programación funcional, el constructor de controles primario es la función. Las características más interesantes de Haskell son el soporte para tipos de datos y funciones recursivas, listas y encaje de patrones.
  • Visual Basic

    Visual Basic
    Fue desarrollado por Alan Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con importantes agregados. Los compiladores de Visual Basic generan código que requiere una o más librerías de enlace dinámico para que funcione, conocidas comúnmente como DLL. Visual Basic provee soporte para empaquetado y distribución; es decir, permite generar un módulo instalador que contiene al programa ejecutable y las bibliotecas DLL necesarias para su ejecución.
  • Python

    Python
    Fue diseñado por el científico de la computación Guido van Rossum. Su filosofía se destaca en una sintaxis que favorezca un código legible. Este lenguaje es multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Python es interpretado, usa tipado dinámico y es multiplataforma. Algo importante es la resolución dinámica de nombres; es decir, lo que enlaza un método y un nombre de variable durante la ejecución del programa.
  • Lua

    Lua
    Fue creado por los brasileños Roberto Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes, basado en C y Perl con una estructura similar. Este lenguaje es suficientemente compacto para usarse en diferentes plataformas. En Lua las variables no tienen tipo, sólo los datos y pueden ser lógicos, enteros, números de coma flotante o cadenas. Estructuras de datos como vectores, conjuntos, listas y registros pueden ser representadas utilizando la única estructura de datos: la tabla.
  • Ruby

    Ruby
    Fue creado por el programador japonés Yukihiro Matsumoto. Este lenguaje es interpretado, reflexivo y orientado a objetos. Combina una sintaxis inspirada en Python y Perl con características de programación orientada a objetos similares a Smalltalk. Ruby está diseñado para la productividad y la diversión del desarrollador, siguiendo los principios de una buena interfaz de usuario. Soporta introspección, reflexión y metaprogramación, y soporte para hilos de ejecución gestionados por el intérprete.
  • PHP

    PHP
    Fue creado por el programador informático Rasmus Lerdorf. Este lenguaje es de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. PHP se considera uno de los lenguajes más flexibles, potentes y de alto rendimiento.
  • JavaScript

    JavaScript
    Fue diseñado por el programador estadounidense Brendan Eich. Este lenguaje es interpretado y se define como orientado a objetos,3 basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente, implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas. Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio es también significativo.
  • Delphi

    Delphi
    Está basado en una versión de Pascal denominada Object Pascal. Se encuentra orientado a objetos, tiene simplificación de la sintaxis de referencias a clases y punteros. soporte para manejo estructurado de excepciones, mejorando sensiblemente el control de errores de usuario y del sistema y la implementación de métodos, los cuales contienen procedimientos y funciones. La potencia de su lenguaje se basa principalmente en la gestión y administración de base de datos.
  • Java

    Java
    Fue creado por el científico de la computación canadiendse James Gosling. Este lenguaje es de propósito general, concurrente, orientado a objetos, 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 lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra.
  • D

    D
    Fue desarrollado por el programador Walter Bright. Se origina como un rediseño de C++, con un enfoque más práctico. D soporta características de programación funcional tal como funciones anónimas, clausuras, objetos recursivamente inalterables y el uso de funciones de orden superior. Su programación está orientada a objetos y al no soportar herencia múltiple utiliza interfaces parecidas a las de Java.
  • Action Script

    Action Script
    Es el lenguaje de programación de la plataforma Adobe Flash. Originalmente desarrollado como una forma para que los desarrolladores programen de forma más interactiva. La programación con ActionScript permite mucha más eficiencia en las aplicaciones de la plataforma Flash para construir animaciones de todo tipo, desde simples a complejas, ricas en datos e interfaces interactivas.
  • Visual Basic.NET

    Visual Basic.NET
    Es un lenguaje orientado a objetos que se puede considerar una evolución de Visual Basic implementada sobre el framework .NET. Su introducción resultó muy controvertida, ya que debido a cambios significativos en el lenguaje VB.NET no es retro compatible con Visual Basic, pero el manejo de las instrucciones es similar a versiones anteriores de Visual Basic, facilitando así el desarrollo de aplicaciones más avanzadas con herramientas modernas.
  • C#

    C#
    Fue desarrollado y estandarizado por Microsoft. Es un lenguaje orientado a objetos y su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes. Su código se puede tratar íntegramente como un objeto, armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ y se ahorra tiempo en la programación ya que tiene una librería de clases muy completa y bien diseñada.
  • F#

    F#
    Fue desarrollado por Microsoft. Es un lenguaje multiparadigma de código abierto, para la plataforma .NET, que conjunta la programación funcional con las disciplinas imperativa y orientada a objetos. Es una variante del lenguaje de programación ML. F# es un lenguaje fuertemente tipado que utiliza inferencia de tipos. Como resultado, los tipos no necesitan estar declarados explícitamente por el programador; estos serán deducidos por el compilador durante el proceso de compilación.
  • Scala

    Scala
    Es un lenguaje multiparadigma diseñado para expresar patrones comunes de programación en forma concisa, elegante y con tipos seguros. Integra sutilmente características de lenguajes funcionales y orientados a objetos. Scala también posee características propias de los lenguajes funcionales. Scala viene integrado de fábrica con la técnica de pattern matching para modelar tipos algebraicos usados en muchos lenguajes funcionales.
  • Groovy

    Groovy
    Es un lenguaje orientado a objetos implementado sobre la plataforma Java. Tiene características similares a Python, Ruby, Perl y Smalltalk. Groovy usa una sintaxis muy parecida a Java, comparte el mismo modelo de objetos, de hilos y de seguridad. Desde Groovy se puede acceder directamente a todas las API existentes en Java. El bytecode generado en el proceso de compilación es totalmente compatible con el generado por el lenguaje Java para la Java Virtual Machine.
  • Clojure

    Clojure
    Es un lenguaje de propósito general dialecto de Lisp. Hace un énfasis especial en el paradigma funcional, con el objetivo de eliminar la complejidad asociada a la programación concurrente. la sintaxis de Clojure está construida sobre expresiones simbólicas que son convertidas en estructuras de datos por un lector antes de ser compiladas. Dos características importantes son el desarrollo dinámico con una consola de evaluación y su interacción con Java.
  • Go

    Go
    Fue desarrollado por Google y sus diseñadores iniciales son Robert Griesemer, Rob Pike y Ken Thompson. Actualmente está disponible en formato binario para los diferentes sistemas operativos. Este es un lenguaje de programación compilado, concurrente, imperativo, estructurado y orientado a objetos. Go usa una sintaxis parecida a C, un tipado estático, tiene muchas de las características y facilidad de lenguajes dinámicos como Python y se encuentra diseñado para la programación de sistemas.
  • Dart

    Dart
    Este es un lenguaje de código abierto, desarrollado por Google. Su objetivo no es reemplazar JavaScript como el principal lenguaje de programación web en los navegadores web, sino ofrecer una alternativa más moderna. Tiene la capacidad de ser una herramienta sencilla para proyectos más grandes y ofrece una mejor seguridad.