Evolution of POO

  • Scheme

    Scheme
    Es un lenguaje de programación funcional y dialecto de Lisp fue creado por Guy L. Steele y Gerald Jay Sussman en los años 70's. La filosofía de Scheme es minimista, solo contiene lo esencial quitando los elementos sobrantes.
    Estándar minimalista
    Variables con alcance léxico
    Recursión de cola es mandatoria
    Sistema de macros higiénicos
    Promueve un estilo de programación funcional
    Los programas son datos y los datos son programas
    Continuaciones explícitas
    Tipos dinámicos
    Recolector de basura
  • SQL

    SQL
    El Structured Query Language o SQL es el lenguaje utilizado por la mayoría de los Sistemas Gestores de Bases de Datos Relacionales (SGBDR) surgidos a finales de los años 70, y que llega hasta nuestros días.
    Es no sensitivo, esto quiere decir que no importa si pones en mayúsculas o minúsculas el comando o instrucción te lo reconocerá.
    Es imperativo, no necesariamente secuencial aunque tenga un ordenamiento.
    Es de fácil comprensión.
    Es un lenguaje de alto nivel para datos.
  • Modula 2

    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++
    C++ es un lenguaje de programación diseñado a mediados de los años 80 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitieran la manipulación de objetos.
    Permite elaborar aplicaciones sencillas como un "Hello World" hasta sistemas operativos y mucho más, todo eso dependiendop el manejo del lenguaje.
    Es muy potente en lo que se refiere a creación de sistemas complejos, un lenguaje muy robusto.
  • ADA

    ADA
    Ada es un lenguaje de programación orientado a objetos, fue diseñado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos.
    Transferir un programa a la memoria sin traducción posterior, esto le da una velocidad de ejecución superior.
    Uso óptimo de los recursos de hardware permitiendo la obtención de un código muy eficiente.
    Flexibilidad, nuevas aplicaciones y conversión de código.
  • Common Lisp

    Common Lisp
    Es un lenguaje de programación aplicativo o funcional, de propósito general, se basa en la aplicación de funciones a los datos y se apoya en la utilización de funciones matemáticas para el control de los mismos.
    Posee un manejo de memoria automático que libera el espacio utilizado por los objetos que dejan de ser necesitados.
    Incluye un mecanismo bastante simple para utilizar evaluación perezosa de expresiones.
  • Eiffel

    Eiffel
    Es un lenguaje de programación escrito por Bertrand Meyer. Al contrario que Smalltalk, incluye un preprocesador que permite la traducción de código Eiffel a lenguaje C.
    Es un lenguaje orientado a objetos puro.
    Orientado hacia el diseño de grandes aplicaciones.
    El paso intermedio a código C se puede considerar como una ventaja y no como un inconveniente, ya que aquellas secciones que sean difíciles de tratar con Eiffel pueden elaborarse a partir de código C.
  • Objective-C

    Objective-C
    Es un lenguaje de programación orientado a objetos y basado en mensajes, altamente dinámico.
    Este lenguaje consiste en un pequeño número de incrementos a ANSI C, y está caracterizado por su aplazamiento a muchas decisiones hasta que se cumple el tiempo de corrida del programa creado, soportando envíos dinámicos, escritura y carga dinámica.
  • Erlang

    Erlang
    Erlang. Es un lenguaje de programación funcional de alto nivel, que se ubica también dentro del paradigma de Programación Declarativa, diseñado para escribir aplicaciones concurrentes y distribuidas de funcionamiento ininterrumpido. Erlang usa procesos concurrentes para estructurar la aplicación. Estos procesos no comparten memoria y se comunican de forma asincrónica mediante el paso de mensajes.
  • Perl

    Perl
    Es un lenguaje de script de tipo BCPL (como TCL o PHP), muy semejante al AWK (de hecho está basado en él), de tipo estructurado con trazas de orientación a objetos (no completamente soportado de forma directa), que permite el desarrollo rápido de aplicaciones y herramientas especialmente orientadas al tratamiento de textos y archivos, aunque actualmente también se utiliza incluso para entornos graficos, en combinación con sistemas como Perl/TK o GTK.
  • Mathematica

    Mathematica
    Bibliotecas de funciones matemáticas elementales y especiales.
    Matrices y manipulación de datos, así como soporte de matrices tipo sparse.
    Soporte para números complejos, precisión arbitraria, computación de intervalos aritméticos y simbólicos.
    Datos en 2D y 3D, función y visualización geográfica y herramientas de animación.
    Solucionadores para sistemas de ecuaciones, ecuaciones diofánticas, ecuaciones diferenciales ordinarias, parciales, diferenciales algebraicas, de retraso, etc.
  • TCL

    TCL
    Tcl es un lenguaje de comandos, cuyo intérprete recibe el nombre de tclsh, que tiene como una de sus principales características la gran facilidad con la que se pueden implementar funciones en C/C++ que pasan a ser nuevas instrucciones del intérprete. Es decir, se pueden embeber aplicaciones en C/C++ dentro del propio intérprete de Tcl; de esta forma es posible obtener nuevas versiones de Tcl, denominadas extensiones.
  • Haskell

    Haskell
    Incluye muchas de las últimas innovaciones en el desarrollo de los lenguajes de programación funcional, como son las funciones de orden superior, evaluación perezosa, tipos polimórficos estáticos, tipos definidos por el usuario, encaje por patrones, y definiciones de listas.
    Características interesantes como el tratamiento sistemático de la sobrecarga, la facilidad en la definición de tipos abstractos de datos, el sistema de entrada/salida puramente funcional y la utilización de módulos.
  • Visual Basic

    Visual Basic
    El Visual Basic es un lenguaje de programación que proviene del BASIC. La primera versión de este lenguaje de programación Visual Basic fue presentada en el año 1991.
    El lenguaje de programación Visual Basic es uno de los lenguajes de programación que utiliza una interfaz visual es decir que nos permite programar en un entorno gráfico, nos permite realizar un gran numero de tareas sin escribir código, simplemente realizando operaciones con el ratón sobre la pantalla de la computadora.
  • HTML

    HTML
    HTML consiste en una serie de códigos cortos, clasificados en un archivo de texto por el sitio del autor – estos son las etiquetas. El texto es guardado como un archivo html, el cual se puede visualizar a través de un buscador, como Internet Explorer o Netscape Navigator.El Hipertexto es el método por el cual te puedes mover alrededor de una web – haciendo click en el texto especial, conocido como “híper-links” que te llevan hacia la siguiente página de texto.
  • Python

    Python
    Python permite dividir el programa en módulos reutilizables desde otros programas Python. Viene con una gran colección de módulos estándar que se pueden utilizar como base de los programas (o como ejemplos para empezar a aprender Python). También hay módulos incluidos que proporcionan E/S de ficheros, llamadas al sistema, Sockets y hasta interfaces a GUI como Tk, GTK, Qt entre otros.
  • Luna

    Luna
    Lua es un lenguaje de extensión, 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, tablas hash, listas y registros pueden ser representadas utilizando la única estructura de datos de Lua: la tabla.
  • Ruby

    Ruby
    Todo es un objeto
    En ruby, se combinan las capacidades de los lenguajes funcionales con las de los lenguajes imperativos orientados a objetos, de esta manera cada elemento en ruby tiene un compartimiento similar, pero personalizado para las conveniencias de cada usuario. Tanto asi que incluso se pueden escribir metodos a números que escribimos normalmente, es decir podemos hacer:
    5.times print { “Ruby es lo mejor” }
  • Java

    Java
    Java es un lenguaje de programación de propósito general orientado a objetos desarrollado por Sun Microsystems. También se puede decir que Java es una tecnología que no sólo se reduce al lenguaje sino que además provee de una máquina virtual Java que permite ejecutar código compilado Java, sea cual sea la plataforma que exista por debajo; plataforma tanto hardware, como software (el sistema operativo que soporte ese hardware).
  • Java Script

    Java Script
    La característica principal de Javascript, de hecho, es la de ser un lenguaje de scripting, pero, sobre todo, la de ser el lenguaje de scripting por excelencia y, sin lugar a dudas, el más usado. Esta particularidad conlleva una notable serie de ventajas y desventajas según el uso que se le deba dar y teniendo en cuenta la relación que se establece entre el mecanismo cliente-servidor.
  • ActionScript

    ActionScript
    El ActionScript es, como su nombre indica, un lenguaje de script, esto quiere decir que no hará falta crear un programa completo para conseguir resultados, normalmente la aplicación de fragmentos de código ActionScript a los objetos existentes en nuestras películas nos permiten alcanzar nuestros objetivos.
  • C # (Sharp)

    C # (Sharp)
    C# (pronunciado si sharp en inglés) es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO. C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.
    Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar a Java, aunque incluye mejoras derivadas de otros lenguajes.
  • Visual Basic.NET

    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.NETno es compatible hacia atrás con Visual Basic, pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic, facilitando asi el desarollo de aplicaciones mas avanzadas con herramientas modernas.
  • F # (Sharp)

    F # (Sharp)
    F# es un lenguaje fuertemente tipado que utiliza inferencia de tipos por lo que los tipos no necesitan estar declarados explícitamente por el programador; estos serán deducidos por el compilador durante el proceso de compilación. No obstante, F# también permite la declaración explícita de tipos de datos. Por ser un lenguaje .NET, F# soporta los objetos y tipos de .NET. F# permite programar de una manera que se asemeja más a como pensamos.
  • Groovy

    Groovy
    Groovy es un lenguaje orientado a objetos para la Plataforma Java, como alternativa al lenguaje de programación Java. Es un lenguaje dinámico, similar a Python, Ruby, Perl. Además puede usarse como lenguaje de scripting dentro de la Plataforma Java. Siendo precisos, Groovy es un Lenguage Dinámico Ágil.
    Entre las características que distinguen a Groovy incluyen el tipado estático y dinámico, closures, sobrecarga de operadores, sintáxis nativa para la manipulación de listas y maps.
  • Dart

    Dart
    Dart es un lenguaje de código abierto, estructurado y flexible, orientado a objetos, basado en clases, con herencia simple y soporte de interfaces, clases abstractas y tipado opcional de datos.
    Ha llegado para permitir que los desarrolladores puedan crear aplicaciones web más complejas, con un mantenimiento más estructurado y con un rendimiento muchísimo superior a lo que nos tienen acostumbrados las aplicaciones web.
  • Scratch

    Scratch
    es un lenguaje de programación que facilita crear historias interactivas, juegos y animaciones y compartir sus creaciones con otras personas en la Web. Permite a los principiantes o personas sin sentido de la programación, obtener resultados sin tener que aprender a escribir de manera sintácticamente correcta primero. Scratch está escrito en Squeak (una implementación libre de Smalltalk-80). Es un entorno de programación que facilita el aprendizaje autónomo.
  • Clojure

    Clojure
    -El código en clojure es de 1 a 10 órdenes de magnitud más pequeño que en Java, esto es, de 10 a 100 veces menos código.
    -Recursión BIEN implementada.
    -Tiene una REPL (read eval print loop), desarrollo dinámico con una consola de evaluación.
    -Las funciones son objetos de primera clase.
    -Listas perezosas (se puede tener programados TODOS los números naturales sin ningún problema de memoria).
    -Amplio conjunto de Estructuras de datos, vectores, mapas, listas, por solo mencionar algunos.
  • GO

    GO
    Go usa tipado estático y es tan eficiente como C. Está pensado para facilitar la vida al máximo a los programadores. Permite detectar errores en la sintaxis durante la compilación y no durante la ejecución, a diferencia de otros lenguajes compilados. Sin embargo, después de programar algo más que un «Hola Mundo», enseguida se puede sentir una sensación agradable al programar. Además, los programadores que hayan usado C se sentirán extremadamente cómodos, ya que Go posee una sintaxis muy parecida
  • Swift

    Swift
    Swift ha sido construido para ser rápido según Apple usando un compilador LLVM de alto rendimiento que transforma el código de Swift en código nativo optimizado para sacar el máximo provecho del Mac, del iPhone o del iPad y del resto del hardware de la compañía. En esta línea, Swift recoge las mejores características de C y Objective-C como tipos, control de flujo u operadores e incluye algunas características enfocadas a la programación orientada a objetos como las clases y los protocolos.