Red de conocimiento informático - Consumibles informáticos - Aplicación disciplinaria de la programación orientada a objetos.

Aplicación disciplinaria de la programación orientada a objetos.

La germinación más temprana de los conceptos de objetos e instancias en informática se remonta al sistema PDP-1 del MIT. Este sistema puede ser el primer sistema práctico basado en la arquitectura de capacidades. Además, la solicitud de mesa de dibujo de Ivan Sutherland en 1963 también contiene la misma idea. Como entidad de programación, los objetos se pensaron por primera vez en el lenguaje Simula 67 en la década de 1960. El lenguaje Simula fue diseñado en el Centro de Computación de Oslo por Ollie Johann Dahl y Christian Nygaard para su uso en entornos de simulación. Se dice que diseñaron este lenguaje para simular barcos y estaban interesados ​​en la interacción entre las propiedades de diferentes barcos. Agrupan diferentes barcos en diferentes clases, y cada objeto, según su clase, puede definir sus propias propiedades y comportamiento. Este enfoque es la primera encarnación conceptual de los procedimientos analíticos. En un programa de análisis, asignamos objetos del mundo real a objetos abstractos, esto se llama "simulación". Simula no solo introdujo el concepto de "clase", sino que también aplicó la idea de instancias; esta puede ser la primera aplicación de estos conceptos.

El lenguaje Smalltalk, inventado por el Instituto de Investigación Xerox PARC en la década de 1970, define el concepto de programación orientada a objetos como la aplicación amplia de objetos y mensajes en operaciones básicas. Los fundadores de Smalltalk estuvieron fuertemente influenciados por las ideas principales de Simula 67, pero los objetos en Smalltalk son completamente dinámicos: pueden crearse, modificarse y destruirse, a diferencia de los objetos estáticos en Simula. Además, Smalltalk también introdujo la idea de herencia, trascendiendo así el modelo de programación que no puede crear instancias y Simula sin herencia.

Además, las ideas de Simula 67 también se han aplicado en muchos lenguajes diferentes, como Lisp y Pascal.

La programación orientada a objetos se convirtió en la idea dominante en la década de 1980, principalmente debido a C++, una versión extendida del lenguaje C. Con el auge de las interfaces gráficas de usuario (GUI), la programación orientada a objetos se ha adaptado bien a esta tendencia. La estrecha relación entre la GUI y la programación orientada a objetos se puede ver en Mac OS X. MAC OS X está escrito en lenguaje Objective-C, que es una versión extendida del lenguaje C que imita a Smalltalk. La idea de programación orientada a objetos también hace que la programación de procesamiento de eventos se utilice más ampliamente (aunque este concepto no se limita a la programación orientada a objetos). Una opinión es que la introducción de la GUI ha promovido en gran medida el desarrollo de la programación orientada a objetos.

Niklaus Wilt de ETH Zurich y sus colegas estudiaron datos abstractos y programación modular. Modula-2 incluye todo esto, mientras que Oberon incluye un enfoque especial orientado a objetos, a diferencia de Smalltalk y C++.

También se añadieron funciones orientadas a objetos a los lenguajes populares de la época: Ada, BASIC, Lisp, Fortran, Pascal, etc. Debido a que estos lenguajes no tenían un diseño orientado a objetos en primer lugar, esta combinación a menudo genera problemas de compatibilidad y mantenibilidad. Por el contrario, los lenguajes "puros" orientados a objetos carecen de algunas características en las que los programadores confían para sobrevivir. En este entorno, desarrollar nuevos lenguajes se ha convertido en una máxima prioridad. Como pionero, Eiffel resolvió con éxito estos problemas y se convirtió en un lenguaje popular en ese momento.

En los últimos años, Java se ha convertido en un lenguaje ampliamente utilizado, excepto que tiene una sintaxis similar a C y C++. La portabilidad de Java fue una parte integral de su éxito, ya que esta característica atrajo la inversión de un gran grupo de programadores.

Han surgido silenciosamente algunos lenguajes que soportan tanto la programación orientada a objetos como la programación procedimental. Entre ellos se encuentran Python, Ruby, etc.

Así como la programación procedimental ha mejorado las técnicas de programación estructurada, los métodos modernos de programación orientada a objetos también han mejorado el uso de patrones de diseño, diseño de contratos y técnicas de lenguaje de modelado (como UML).