La Programación
Orientación a Objetos (P.O.O.) surge en Noruega en 1967 con un lenguaje llamado
Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en el centro de
cálculo noruego.
Simula 67
introdujo por primera vez los conceptos de clases, corrutinas y subclases
(conceptos muy similares a los lenguajes Orientados a Objetos de hoy en día).
El nacimiento
de la Programación Orientación a Objetos en Europa pasó inadvertido para gran
parte de los programadores. Hoy tenemos la Orientación a Objetos como un niño
de 33 años al que todos quieren bautizar.
Uno de los
problemas de inicio de los años setentas era que pocos sistemas lograban
terminarse, pocos se terminaban con los requisitos iniciales y no todos los que
se terminaban cumpliendo con los requerimientos se usaban según lo planificado.
El problema consistía en cómo adaptar el software a nuevos requerimientos
imposibles de haber sido planificados inicialmente.
Este alto grado
de planificación y previsión es contrario a la propia realidad. El hombre
aprende y crea a través de la experimentación, no de la planeación. La
Orientación a Objetos brinda estos métodos de experimentación, no exige la
planificación de un proyecto por completo antes de escribir la primera línea de
código.
En los 70’s
científicos del centro de investigación en Palo Alto Xerox (Xerox park)
inventaron el lenguaje Small talk que dio respuesta al problema anterior
(investigar no planificar).
Small talk fue
el primer lenguaje Orientado a Objetos puro de los lenguajes Orientados a
Objetos, es decir, únicamente utiliza clases y objetos (Java usa tipos de datos
primitivos, o bien los Wrappers que son clases que encapsulan tipos de datos
primitivos).
Quien tuvo la
idea fue D. Parnas cuando propuso la disciplina de ocultar la información. Su
idea era encapsular cada una de las variables globales de la aplicación en un
solo módulo junto con sus operaciones asociadas, sólo mediante las cuales se
podía tener acceso a esas variables.
El resto de los
módulos (objetos) podían acceder a las variables sólo de forma indirecta
mediante las operaciones diseñadas para tal efecto.
En los años
80’s Bjarne Stroustrup de AT&T Labs., amplió el lenguaje C para crear C++
que soporta la programación Orientada a Objetos.
En esta misma
década se desarrollaron otros lenguajes Orientados a Objetos como Objective C,
Common Lisp Object System (CIOS), object Pascal, Ada y otros.
Posteriores
mejoras en herramientas y lanzamientos comerciales de C++ por distintos
fabricantes, justificaron la mayor atención hacia la programación Orientada a
Objetos en la comunidad de desarrollo de software. El desarrollo técnico del
hardware y su disminución del costo fue el detonante final. Con más
computadoras al alcance de más personas más programadores, más problemas y más
algoritmos surgieron.
En el inicio de
los 90’s se consolida la Orientación a Objetos como una de las mejores maneras
para resolver problemas. Aumenta la necesidad de generar prototipos más
rápidamente (concepto RAD Rapid Aplication Developments). Sin esperar a que los
requerimientos iniciales estén totalmente precisos.
En 1996 surge
un desarrollo llamado JAVA (extensión de C++). Su filosofía es aprovechar el
software existente. Facilitar la adaptación del mismo a otros usos diferentes a
los originales sin necesidad de modificar el código ya existente.
En 1997-98 se
desarrollan herramientas ‘CASE’ orientadas a objetos (como el diseño asistido
por computadora).
Del 98 a la
fecha se desarrolla la arquitectura de objetos distribuidos RMI, Corba, COM,
DCOM.
Actualmente la
orientación a objetos parece ser el mejor paradigma, no obstante, no es una
solución a todos los problemas. Trata de eliminar la crisis del software. Entre
los creadores de metodologías orientadas a objetos se encuentran: G. Booch,
Rambaught, Ivar Jacobson y Peter Cheng.
No hay comentarios.:
Publicar un comentario