Objetos: la revolución de los 90
Un repaso a la situación actual
El concepto de orientación a objeto ha devenido en ser más y más popular durante los últimos años. Como todo aquello que ha sido novedad en la industria de la computación, se considera ya como una panacea, y también como algo cuya consecución está a la vuelta de la esquina. Hoy, cualquier vendedor utiliza ya el término en cualquier modo o manera, ya sea para definir labores de desarrollo, aplicaciones o incluso temas de consultoría.
Pero, desde una perspectiva de usuario, la idea de ya estamos otra vez con la misma canción no sería en absoluto injustificada. Por que, incluso, el más radical podría suponer que ya estamos ante otro esfuerzo que se convierte en confusión, y se utiliza ni más ni menos que para vender.
Es por ello que una clarificación en la medida de lo posible acerca de todo lo que se atisba ante este fenómeno (eso es, más que algo tan atómico como un concepto), puede ayudar también a asimilar con más racionalidad todo lo que se nos viene encima.
Porque lo cierto es que existe, y que puede hacer cambiar todos los esquemas de lo que se entiende hoy por desarrollo, proceso de información, e incluso -más adelante veremos por qué- gestión de negocio.
Metodología: filosofía del desarrollo
La historia, la de España sin ir más lejos, ha estado salpicada de negativas experiencias fallidas por implementar metodologías de desarrollo. Eso que se piensa mucho, se plasma en poco más de una docena de folios, y tiene la particularidad de ser la filosofía en la que se basan inversiones millonarias.
Durante los últimos años, un cierto número de metodologías han venido a la palestra con la idea de ser la solución, del mismo modo que han desaparecido al ir evolucionando la tecnología. Unas han durado más en boga, y otras han comenzado antes a evidenciar sus fisuras. Para poner un ejemplo más o menos popular y conocido, el declive del mundo mainframe ha conseguido arrastrar consigo al monolítico SSADM (Método Estructurado de Análisis y Diseño de Sistemas). Y, también por ilustrar, cabe plantearse ya cuál es el futuro de la mil veces ensalzada reingeniería de procesos (BPR), dónde están sus ventajas y dónde sus beneficios.
Pero la intención de todos ellos era buena: se perseguía, y se sigue persiguiendo, un modelo inteligible tanto para el desarrollador de sistemas como para quien los va a usar. Un par de individuos con unas características y un tipo de conocimiento absolutamente distintos.
Pues bien, si bien puede afirmarse que esta diferencia es casi insalvable, lo cierto es que la misma tecnología está permitiendo que, al menos, su trascendencia sea menor. Por ejemplo, el imperio del usuario final no es más que esto, y, por parte de los desarrolladores, se están poniendo a su alcance herramientas que les permiten ver la realidad fuera de sus fronteras.
Y es la tecnología orientada a objeto la que consigue esto último. Lo primero, el modelo cliente/servidor. Ambos son, podría decirse, complementarios.
Pero ¿ha sido sobredimensionada la importancia de esta tecnología, o existe realmente una necesidad de negocio para semejante método? COMPUTERWORLD ha tratado de recabar información acerca de lo que opinan expertos y analistas al respecto.
A finales de los 80 y principios de los 90, pudo apreciarse un cambio radical en la forma de operar de las compañías. Un incremento cada vez mayor en la competitividad, como consecuencia directa de una progresiva desregulación y globalización del mercado, fue obligando a las corporaciones a revaluar su forma de hacer negocios, no sólo por lo que se refiere a los procesos de negocio, sino también incluso en su organización, canales de distribución y alianzas con terceras compañías. Las compañías de hoy están trabajando duro para reducir el tiempo dedicado al desarrollo de productos, de cara a una mayor competitividad. Las relaciones con terceros se han incrementado, para conseguir focalizar los esfuerzos en las competencias esenciales y complementar con dichas relaciones otras actividades específicas.
Y, paralelamente a este fenómeno, se ha producido en el campo de la informática la revolución del ordenador personal, con interfaces gráficos de usuario e importantes capacidades de acceso a datos. El culmen de esta revolución no ha sido otro que el advenimiento del modelo cliente/servidor, tomando como referencia el concepto de aplicaciones distribuidas o basadas en componentes.
En términos generales, el diseño cliente/servidor demanda aplicativos modulares para conseguir el mayor provecho en la explotación de negocios. Y la orientación a objeto es considerada hoy como el único método capaz de proporcionar este provecho.
Tecnologías de objetos: elementos
Para entender mejor cuál es el significado global de este término, sería quizá interesante definir primero cuáles son sus elementos principales, que en conjunto constituyen lo que podría denominarse una infraestructura integral de objetos. Analistas y expertos consideran que no todos los elementos que a continuación se detallan seguirán la dinámica actual; algunos de ellos terminarán fusionándose en tecnologías venideras, pero, hoy por hoy, las cosas están así:
- Lenguajes. En la actualidad, existen sólo dos lenguajes utilizados en volumen: C++ y SmallTalk. Este último, desarrollado en su momento por Xerox Research Laboratories ya desde principios de los 70, se considera el más avanzado en la actualidad, el que más se acerca a la concepción de tecnología de objetos.
No obstante, diversas extensiones objeto han sido ya introducidas en diferentes lenguajes de 3ª generación; lo cual no ha evitado que, sin embargo, siga siendo C++ el más utilizado de todos ellos. Descendiente directo del C que desarrolló en su día AT&T Bell Laboratories, hoy la patente la tiene el USG de Novell, que naciera después de que esta compañía comprara Unix Systems Laboratories. C++ permite a los desarrolladores usar el lenguaje en contextos tanto de tipo procedural como en modo objeto, y ofrece además algunas extensiones basadas en objetos que permiten que éstos puedan pertenecer a más de una clase.
Los analistas, por su parte, no aprecian serios competidores para C++ y SmallTalk a corto y medio plazo, y señalan de hecho una progresión considerable para éste último. No existen cifras concretas respecto a 1994, pero ya en el 93, SmallTalk experimentó un crecimiento superior al 70% en 1993. En cuanto a su evolución, se centrará a corto y medio plazo en permitir a los entornos y herramientas de programación la integración de código ya existente de aplicaciones tradicionales. El lanzamiento del Object COBOL de Microfocus será muy importante en este sentido, como lo será, presumiblemente, el VisualGen de IBM.
- Herramientas de diseño y análisis. Existen ya hoy algunas utilidades de diseño y análisis bastante populares (KISS, Fusion, Syntropy, ...), pero en general pocas tienen herramientas específicas que las soporten. Y ello es debido a una razón muy simple: todavía no se ha llegado con certeza a un estadio de racionalización de este tipo de tecnologías (hay quien supone que los próximos meses serán decisivos), como para que existan herramientas conformes a éste o aquél método específico orientado a objetos.
Queda claro, desde luego, que, en este como en cualquier otro campo de la computación, la existencia de estándares es trascendental y beneficiosa a largo plazo, pero, hoy por hoy, limitar una herramienta de estas características a un método particular es limitar la base potencial de usuarios y, por ende, la magnitud de su mercado.
Principios como reusabilidad, librerías de clases o marcos de desarrollo serán incorporados, no obstante, como primer paso de esta estandarización, de forma que las herramientas de diseño y análisis podrán soportar inherentemente estos conceptos, de cara tanto a la reusabilidad c