El boom de la programación orientada a objetos (POO), al menos aquí en México, ocurrió cuando terminaba la licenciatura. Borland sacó por aquellas fechas una extensión de su ya famoso Turbo Pascal capaz de soportar el paradigma de orientación a objetos: el Turbo Pascal v5.5.
Los ejemplos de cómo, con la encapsulación, herencia y polimorfismo, podían crearse programas de comportamiento muy complejo con pocas líneas de código y creando objetos en forma dinámica, daban la idea de que se trataba de una solución definitiva al desarrollo de software.
Algunos años después, trabajando en mi tesis de maestría, decidí hacer uso del paradigma de orientación a objetos en mi proyecto. Compré el Turbo C++ (el compilador), el libro de Grady Booch «Object-Oriented Analysis and Design» (que lo leí más de una vez de inicio a fin; antecedente a UML) y me puse a aplicar cuanto había aprendido en el uso de la POO en el sistema de memorias asociativas basada en el modelo de redes neuronales del Dr. Bart Kosko. Mis vectores de datos eran objetos, cuya interacción por el producto externo, sobrecargando los operadores de multiplicación y suma del C++, permitían de la nada crear otros objetos, que naturalmente eran matrices y estos a su vez de agregaban a otros para crear el sistema de redes neuronales buscado. Mera prueba de concepto. A la postre, la naturaleza aditiva de las operaciones en la red propiciaba la pérdida de información que no lo hacían muy útil. Salvo bajo determinadas condiciones de los datos de entrada, el modelo no era útil para aplicaciones prácticas. Aún así, aprendí varias cosas sobre el modelo, las memorias asociativas en general, C++, la POO y, claro, me permitió obtener mi grado de maestro en ciencias en informática.
Una de las cosas que aprecié de la POO era que, sabiéndola usar, efectivamente podían fácilmente crearse programas de comportamiento muy complejo con pocas líneas de código pero debía reservarse para problemas verdaderamente complicados. Para aquellas tareas simples o rutinarias valía más hacer uso de una buena expresión regular, por ejemplo, que el empezar a complicarse la vida pensando en objetos, herencia y polimorfismo. E, igualmente, era muy fácil crear un programa extremadamente difícil de entender si uno no estaba familiarizado con el lenguaje y la POO, y mucho más difícil saber lo que hacía si éste echaba mano de objetos dinámicos.
Terminada la maestría, desarrollé una vida profesional en varias empresas, donde buscaban a gente que supiera de la POO (aunque ninguna realmente explotaba cabalmente el paradigma; simplemente se limitaban a hablar de objetos, herencia, polimorfismo y encapsulación como si por hacerlo ya se estuviera haciendo POO). Vino después la era de los componentes, agentes, la reusabilidad, el cómputo distribuido, la nube y otras modas. La terminología empleada en la POO pasó a segundo término.
Un comentario en “El paso de la POO por mi vida”