Introducción a la POO
Historia de la POO
Lo que sigue a continuación no pretende ser exhaustivo. Sencillamente repasa los eventos principales que permitieron la democratización de la POO y la creación del lenguaje Java.
Al contrario de lo que se podrá pensar, el concepto de la POO no es reciente. En los años 60, dos brillantes investigadores noruegos, Kristen Nygaard y Ole-Johan Dahl, desarrollaron las bases de la POO creando el lenguaje Simula. Las nociones básicas de la POO como las clases, la herencia, los métodos virtuales, etc., se crearon en este lenguaje, para permitir modelizar de manera fiel procesos industriales complejos. Simula-67 abrió el camino a los lenguajes orientados a objetos como Smalltalk y a continuación, entre otros, a C++, Java y C#, que empezaron a explotar estos conceptos algunos lustros más tarde. Los dos autores de Simula fueron recompensados por sus trabajos al inicio de los años 2000, justo antes de su desaparición...
En 1980, Smalltalk es el primer lenguaje objeto propuesto con un entorno de desarrollo gráfico integrado. Smalltalk se diseñó por el equipo del americano Alan Kay en el centro de investigación informática de Xerox en California (el famoso Palo Alto Research Center). Este lenguaje retoma y completa los conceptos básicos, principalmente la noción de compilación dinámica de un código «intermedio»...
Histórico del lenguaje Java
Desde las primeras versiones de Windows, el lenguaje C y posteriormente C++ se utilizaron mucho para construir aplicaciones. A pesar de su orientación a objetos y su potencia incontestable, C++ se muestra como un lenguaje complejo de utilizar. El desarrollador debe administrar absolutamente todo, como por ejemplo las asignaciones/liberaciones de memoria y los aspectos relacionados con la gestión de la seguridad. Además, la utilización directa de las aplicaciones en interfaces Windows impacta de manera inmediata en la estabilidad del sistema en caso de funcionamiento incorrecto y errores.
En los años 90, el lenguaje Java ofrecía a los desarrolladores una codificación de sus programas mucho más sencilla y una ejecución aislada en una máquina virtual. Es suficiente con que un entorno de explotación tenga una máquina virtual Java para que la aplicación funcione sin modificar el código. Además, la máquina virtual garantiza una utilización correcta de los recursos reales, particionando la ejecución de las aplicaciones. Respecto a la gestión de memoria, el desarrollador administra únicamente las peticiones de asignación, a medida que evolucionan las necesidades de su programa. Las zonas de memoria se explotan hasta que terminan las operaciones y el dispositivo interno, conocido con el nombre de garbage...