Introducción a los lenguajes de programación orientada a objetos. Autor David Ismael Morales Sandoval.
-
Primeras computadoras "modernas"
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. -
Period: to
Decada de los 40's
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. -
Plankalkül
Fue diseñado, pero sin implementar durante medio siglo -
Se crea el sistema de codificación ENIAC.
-
Period: to
Una serie de conjuntos de instrucciones nemotécnicas
Comenzando en 1949 con C-10 para BINAC (que luego evolucionaría en UNIVAC). Cada conjunto de instrucciones estaba destinado a un fabricante específico -
ALGOL 60 ("ALGOrithmic Language").
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: -
Period: to
Las décadas de 1950 y 1960
En los cincuenta, los tres primeros lenguajes de programación modernos, cuyos descendientes aún continúan siendo utilizados.
FORTRAN (1955), creado por John Backus.
LISP (1958), creado por John McCarthy.
COBOL (1959), creado por el Short Range Committee, altamente influenciado por Grace Hopper. -
Regional Assembly Language
El lenguaje ensamblador o assembly (en inglés: assembly language y la abreviación asm) es un lenguaje de programación de bajo nivel. Consiste en un conjunto de mnemónicos que representan instrucciones básicas para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. -
Autocoder
Autocoder fue el nombre dado a algunos lenguajes de ensamblador para un número de ordenadores IBM en la década de los 50 y los 60. Los primeros Autocoders parecen ser los primeros ensambladores capaces de implementar la utilidad de los Macros. -
IPL (precursor de LISP)
Lenguaje de procesamiento de información - Information Processing Language. Information Processing Language ( IPL ) es un lenguaje de programación creado por Allen Newell , Cliff Shaw y Herbert A. Simon en RAND Corporation y el Carnegie Institute of Technology. -
FORTRAN
Creado por John Backus.
Fortran. (Formula Translating System), es un lenguaje orientado al cálculo numérico, diseñado en sus inicios para las computadoras IBM y usado en aplicaciones científicas y de ingeniería y es el más antiguo de los Lenguajes de alto nivel. -
FLOW-MATIC (precursor de COBOL)
Es el primer lenguaje de alto nivel orientado al ámbito de gestión. Fue creado por Grace Murray Hopper (1906 – 1992) en 1955 para UNIVAC. 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, y en 1960 presentó su primera versión del lenguaje COBOL (Common Business-Oriented Language). -
FORTRAN (primer compilador)
En 1957 el equipo de John W. Backus presentó el primer compilador completo destinado al Fortran. -
COMTRAN (precursor de COBOL)
COMTRAN (COMmercial TRANslator) es uno de los primeros lenguajes de programación desarrollados en IBM . Fue concebido como el equivalente de programación empresarial del lenguaje de programación científica FORTRAN (FORmula TRANslator). -
LISP
LISP. Es un lenguaje que muestra la información estructurada en listas en las que se pueden gestionar la información que estas contienen. De ahí el nombre que se le dió a este lenguaje, Lisp (List-Processing), porque fue creado principalmente para el procesamiento de listas. -
COBOL
Creado por el Short Range Committee, altamente influenciado por Grace Hopper.
Hasta ahora sigue siendo el lenguaje utilizado por la mayoría de los bancos a nivel mundial. -
FACT (precursor de COBOL)
-
RPG
El lenguaje de programación RPG fue desarrollado por IBM originalmente para generar informes comerciales o de negocios. Sus siglas en inglés significan Report Program Generator. La primera versión apareció en 1959. -
Period: to
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. -
APL
APL (A Programming Language) es un lenguaje de programación que se originó a partir de la notación matemática desarrollada por Kenneth Iverson en 1957, quien lo implementó en 1962 cuando fue contratado por IBM en ese mismo año. -
SNOBOL
SNOBOL (StriNg Oriented symBOlic Language) es un lenguaje de programación de computadoras de muy alto nivel que surgió en la década de los 60 en los Laboratorios Bell merced al equipo formado por David J. Farber, Ralph E. Griswold e Ivan P. Polonsky. -
Simula
Simula es un lenguaje de programación orientada a objetos (POO) de 1962. Fue el primero de este tipo que incluyó el concepto de clase. Varios años después de su desarrollo, casi todos los lenguajes modernos comenzaron a utilizar sus principios de orientación a objetos. Así fue como se popularizaron términos como clases, objetos, instancias, herencia, polimorfismo, etc. -
CPL (precursor de C)
CPL ( Combined Programming Language ) es un lenguaje de programación de múltiples paradigmas , que se desarrolló a principios de la década de 1960. Es un antepasado del lenguaje C a través de los BCPL y B idiomas. -
BASIC
BASIC, siglas de Beginner's All-purpose Symbolic Instruction Code,1 Código simbólico de instrucciones de propósito general para principiantes en castellano), es una familia de lenguajes de programación de alto nivel. -
PL/1
PL/1, acrónimo de Programming Language 1 (Lenguaje de Programación 1), fue propuesto por IBM hacia 1970 para responder simultáneamente a las necesidades de las aplicaciones científicas y comerciales, disponible en las novedosas plataformas de utilidad general IBM 360 y más adelante IBM 370. -
BCPL (precursor de C)
BCPL es la sigla en inglés de Basic Combined Programming Language (Lenguaje de Programación Básico Combinado). Fue diseñado por Martin Richards de la Universidad de Cambridge en 1966 debido a las dificultades experimentadas con el lenguaje de programación CPL durante los años 60. -
Logo
Logo es un lenguaje de programación de alto nivel, en parte funcional, en parte estructurado; de muy fácil aprendizaje, razón por la cual suele ser el lenguaje de programación preferido para trabajar con niños y jóvenes. Fue diseñado con fines didácticos por Danny Bobrow, Wally Feurzeig, Seymour Papert y Cynthia Solomon, los cuales se basaron en las características del lenguaje Lisp. -
Period: to
1968-1979: estableciendo paradigmas fundamentales
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 -
B
B es el nombre de un lenguaje de programación desarrollado en los Bell Labs, predecesor del lenguaje de programación C.
Fue mayoritariamente un trabajo de Kenneth L. Thompson con contribuciones de Dennis M. Ritchie publicado por primera vez en el año 1969 -
Period: to
C
En principio un lenguaje de programación de sistemas, fue desarrollado por Dennis Ritchie y Ken Thompson en los Laboratorios Bell entre 1969 y 1973. -
Smalltalk
A mediados de los 70, proporcionaron un completo diseño de un lenguaje orientado a objetos. -
Pascal
Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo, con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo. -
Forth
Forth o FORTH es un lenguaje de programación y un ambiente de programación para computadores ideado por Charles H. Moore entre los años 1965 y 1970 en el National Radio Astronomy Observatory de Kitt Peak, Arizona. -
Prolog
Prolog, diseñado en 1972 por Colmerauer, Roussel y Kowalski, fue el primer lenguaje de programación lógica. -
C
C es un lenguaje de programación de propósito general, originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell, como evolución del anterior lenguaje B, a su vez basado en BCPL. -
Smalltalk
Smalltalk es un lenguaje reflexivo de programación, orientado a objetos y con tipado dinámico. Por sus características, Smalltalk puede ser considerado también como un entorno de objetos, donde incluso el propio sistema es un objeto. -
ML
ML es un lenguaje de programación de propósito general de la familia de los lenguajes de programación funcional desarrollado por Robin Milner y otros en la Universidad de Edimburgo. -
1975 - Scheme
Scheme es un lenguaje de programación funcional (si bien impuro pues sus estructuras de datos no son inmutables) y un dialecto de Lisp. Fue desarrollado por Guy L. Steele y Gerald Jay Sussman en la década de los setenta e introducido en el mundo académico a través de una serie de artículos conocidos como los Lambda Papers de Sussman y Steele. -
SQL
Inicialmente sólo un lenguaje de consulta, posteriormente ampliado con construcciones de programación. -
Modula-2
Como novedad respecto a este último lenguaje, introduce el concepto de módulo, y de encapsulación. Del código contenido en un módulo, sólo se facilita una interfaz pública denominada módulo de definición, permaneciendo el resto oculto (encapsulado) para un desarrollador ajeno, lo que facilita el mantenimiento de dichas estructuras de programación a la vez que imposibilita la modificación de las mismas a cualquiera que no posea el código de su módulo de implementación. -
C++
C++ es un lenguaje de programación diseñado en 1979 por Bjarne Stroustrup. La intención de su creación fue extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, C++ es un lenguaje híbrido. -
Period: to
Década de 1980
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. -
Ada
Ada es un lenguaje de programación orientado a objetos y fuertemente tipado de forma estática que fue diseñado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje multipropósito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++. -
Common Lisp
Common Lisp es un lenguaje de programación que pertenece a la familia de lenguajes Lisp. Se encuentra descrito en el documento estándar ANSI INCITS 226-1994 (R2004) del ANSI, (antes X3.226-1994 (R1999)). -
MATLAB
MATLAB (abreviatura de MATrix LABoratory, «laboratorio de matrices») es un sistema de cómputo numérico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows, macOS y GNU/Linux. -
Eiffel
Eiffel es un lenguaje de programación orientado a objetos que sigue el estándar ISO diseñado por Bertrand Meyer (defensor de los lenguajes orientados a objetos y autor de la construcción de Software Orientado a Objetos) y Software Eiffel. El diseño del lenguaje esta estrechamente relacionado con el método de programación Eiffel. -
Objective-C
Objective-C es un lenguaje de programación orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk. Originalmente fue creado por Brad Cox y la corporación StepStone en 1980. En 1988 fue adoptado como lenguaje de programación de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC. Actualmente se usa como un lenguaje principal de programación para Mac OS X, iOS y GNUstep, además de Swift. -
Erlang
Erlang es un lenguaje de programación concurrente (u orientado a la concurrencia) y un sistema de ejecución que incluye una máquina virtual (BEAM) y bibliotecas (OTP). -
Perl
Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado bourne shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. -
Tcl
Tcl (pronunciado /tí.quel/, originado del acrónimo en inglés "Tool Command Language" o "lenguaje de herramientas de comando", actualmente se escribe como "Tcl" en lugar de "TCL"), es un lenguaje de script creado por John Ousterhout, que ha sido concebido con una sintaxis sencilla para facilitarse su aprendizaje, sin detrimento de la funcionalidad y expresividad. -
Mathematica
Mathematica es un programa utilizado en áreas científicas, de ingeniería, matemática y áreas computacionales. Originalmente fue concebido por Stephen Wolfram, quien continúa siendo el líder del grupo de matemáticos y programadores que desarrollan el producto en Wolfram Research, compañía ubicada en Champaign, Illinois. Comúnmente considerado como un sistema de álgebra computacional, Mathematica es también un poderoso lenguaje de programación de propósito general. -
FL (Backus)
FL (abreviatura de F unction L evel) es un lenguaje de programación funcional creado en el Centro de Investigación de IBM Almaden por John Backus , John Williams y Edward Wimmers en la década de 1980 y documentado en un informe de 1989. FL fue diseñado como sucesor de Backus ' lenguaje FP anterior , proporcionando soporte específico para lo que Backus denominó programación a nivel de función . -
Haskell
Es un lenguaje de programación estandarizado multi-propósito, funcionalmente puro, con evaluación no estricta y memorizada, y fuerte tipificación estática. Su nombre se debe al lógico estadounidense Haskell Curry, debido a su aportación al cálculo lambda, el cual tiene gran influencia en el lenguaje. En Haskell, "una función es un ciudadano de primera clase" del lenguaje de programación. -
Period: to
La década de 1990: la era de Internet
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. -
Python
Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en la legibilidad de su código. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, dinámico y multiplataforma. -
Visual Basic
Visual Basic (VB) es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con importantes agregados. Su primera versión fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo. -
HTML (lenguaje de marcado de hipertexto)
HTML, siglas en inglés de HyperText Markup Language (‘lenguaje de marcas de hipertexto’), hace referencia al lenguaje de marcado para la elaboración de páginas web. Es un estándar que sirve de referencia del software que conecta con la elaboración de páginas web en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, videos, juegos, entre otros. -
Java
Java es un lenguaje de programación y una plataforma informática. Hay muchas aplicaciones y sitios web que no funcionarán, probablemente, a menos que tengan Java instalado y cada día se crean más. Java es rápido, seguro y fiable. -
Ruby
Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. -
Lua
Lua es un lenguaje de programación multiparadigma, imperativo, estructurado y bastante ligero, que fue diseñado como un lenguaje interpretado con una semántica extendible. El nombre significa «luna» en portugués. -
CLOS (parte del ANSI Common Lisp)
Common Lisp Object System (CLOS por sus siglas en inglés) un sistema de objetos. Forma parte del estándar ANSI de Common Lisp. Ha sido adaptado por otros dialectos de Lisp como EuLisp o Emacs Lisp. -
Delphi (Object Pascal)
Embarcadero Delphi, antes conocido como CodeGear Delphi, Inprise Delphi y Borland Delphi, es un entorno de desarrollo de software diseñado para la programación de propósito general con énfasis en la programación visual. En Delphi se utiliza como lenguaje de programación una versión moderna de Pascal llamada Object Pascal. -
JavaScript
JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. -
PHP
PHP es un lenguaje de programación de uso general que se adapta especialmente al desarrollo web. Fue creado inicialmente por el programador danés-canadiense Rasmus Lerdorf en 1994. -
WebDNA
WebDNA es un script del lado del servidor , lenguaje interpretado con un sistema de base de datos integrada, diseñada específicamente para la World Wide Web. Su uso principal es la creación de aplicaciones de páginas web dinámicas impulsadas por bases de datos . Publicado en 1995, el nombre se registró como marca comercial en 1998. WebDNA actualmente es mantenido por WebDNA Software Corporation. -
Rebol
Rebol ( / r ɛ b əl / REB -əl ; históricamente REBOL ) es una multiplataforma lenguaje de intercambio de datos y una multi-paradigma lenguaje de programación dinámico diseñado por Carl Sassenrath para comunicaciones de red y computación distribuida. -
D
D es un lenguaje de programación de propósito general desarrollado por Walter Bright cuya primera versión apareció en 1999. Se origina como un rediseño de C++, con un enfoque más pragmático, pero no es un lenguaje puramente derivado del anterior. D ha mantenido algunas características de C++ y también está influido por otros conceptos de otros lenguajes como Java, C# y Eiffel. Una versión estable fue lanzada el 2 de enero de 2007. -
ActionScript
Adobe ActionScript (fecha de lanzamiento en 1997) 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. -
Period: to
Tendencias actuales
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:
Aumentar el soporte para la programación funcional en lenguajes importantes utilizados comercialmente, incluida la programación funcional pura para hacer el código más fácil de razonar y de paralelizar (tanto en macro como en micro-niveles). etc... -
C#
"C#" (pronunciado si sharp en inglés) es un lenguaje de programación multiparadigma desarrollado y estandarizado por la empresa Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común. -
Visual Basic .NET
Visual Basic .NET (VB.NET) es un lenguaje de programación 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. -
F#
F# (pronunciado F Sharp) es un lenguaje de programación 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 y es compatible con la implementación Objective Caml. F# fue inicialmente desarrollado por Don Syme de Microsoft Research -
Groovy
Groovy es un lenguaje de programación orientado a objetos implementado sobre la plataforma Java. Tiene características similares a Python, Ruby, Perl y Smalltalk. -
Factor
Factor es un lenguaje de programación orientado a pila creado por Slava Pestov. Factor es de tipado dinámico y administración de memoria automática, como poderosas características de meta programación. El lenguaje tiene presentando una sola implementación de un self-hosted optimizando al compilador y un entorno de desarrollo interactivo. La distribución Factor incluye una larga librería estándar. -
Scala
Scala es un lenguaje de programación multi-paradigma 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. La implementación actual se ejecuta en la máquina virtual de Java y es compatible con las aplicaciones Java existentes. -
Scratch
Scratch es un lenguaje de programación visual desarrollado por el Grupo Lifelong Kindergarten del MIT Media Lab. Su principal característica consiste en que permite el desarrollo de habilidades mentales mediante el aprendizaje de la programación sin tener conocimientos profundos sobre el código. -
Clojure
Clojure es un lenguaje de programación de propósito general dialecto de Lisp. Hace un énfasis especial en el paradigma funcional, con el objetivo (entre otros) de eliminar la complejidad asociada a la programación concurrente. Clojure puede ser ejecutado sobre la Máquina Virtual de Java y la máquina virtual de la plataforma .NET, así como compilado a JavaScript. -
Go
Go es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C, que intenta ser dinámico como Python y con el rendimiento de C o C++. Ha sido desarrollado por Google -
Dart
Dart (originalmente llamado Dash) es un lenguaje de programación de código abierto, desarrollado por Google. Fue revelado en la conferencia goto; en Aarhus, Dinamarca el 10 octubre de 2011. -
Swift
Swift es un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y macOS. Fue presentado en la WWDC 2014