experiencia
Servicios - Sepa lo que Ricardo Devis & Asociados pueden hacer por ustedPublicaciones - Consulte los documentos que ponemos a su disposiciónContacto - Conozca como ponerse en contacto con Ricardo Devis & Asociados
 


RPP noviembre 1996

Symantec Cafe: ¿Café Molido?

Ricardo Devis Botella

Ciertamente Java ha generado un turbador remolino tecnológico y comercial que, a modo de un molinillo de café, tritura cuanto encuentra a su paso, incluidas posiciones prudentes y posicionamientos medidos. Y es que resulta que todas las compañías están migrando (o mejor, replicando) sus entornos C++ (y también Smalltalk) a Java. Symantec es una de éstas, y bajo el denominador común “Café” ha reunido distintos productos que intentan dar la réplica a la revolución Java (entornos de desarrollo, constructores visuales, acceso a bases de datos vía JDBC, etc.). Echémosle un vistazo a tanto pasmo.

 


A la hora de afrontar el presente artículo se me antojaron tres posibles estrategias:

  • Una semblanza del producto repleta de características técnicas, señaladora de las mejoras respecto a anteriores versiones y anticipativa de las mejoras a introducir en posteriores lanzamientos, tras lo que tendría que dar una opinión basada en una tabla de prestaciones y una puntuación en una escala entre 1 y 76.
  • Una comparación entre Symantec Café y sus competidores comerciales directos: Sun Java Workshop y Microsoft Visual J++ (expresamente obvio a Borland y a otras herramientas de su estilo, bien share-free-ware bien pendientes de cierta definición, como también a los futuribles Visual Age for Java y otros).
  • Una revisión del entorno referido a sus posibilidades respecto de equipos de desarrollo y a la bonanza de las aplicaciones (por sólidas, rápidas y mantenibles) que el producto genere.

Bueno, hay opciones. Lo malo es que, tras pensarlo detenidamente, concluí que no me gustaba ninguna. La cuestión es que, aunque parezca mentira, ya he probado casi todos los entornos de programación Java del mercado, de Internet y de autores individuales ahora perseguidos por el FBI. En fin, decía que la cuestión es que, con una honrosa excepción de la que más tarde contaré, no puedo en puridad afirmar que puedan establecerse diferencias sustantivas entre los enfoques y productos reseñados más allá de meros comentarios, opiniones bajo soborno comercial o preferencias freudianas. Claro que se dan cuestiones que dependen del fabricante, de las plataformas de ejecución y de otras cuitas que ahorraré al lector, pero, repito, las diferencias no son de recibo, habida cuenta, además, que no existe todavía un acervo práctico del que extraer experiencias reales con los productos en proyectos comerciales (excepción hecha de los entornos mismos). Así que aquí es donde acaba este artículo, por lo que recomiendo que … “Un momento, un momento”. Oh, vaya, es la queja del lector airado. “Todo eso suena … errr … humm … raro, pero yo sigo necesitando alguna guía, un compendio de indicaciones para saber a que atenerme; si comprar o no, si probar tal vez”. Bueno, algo de razón hay aquí, pero es que los enfoques expuestos no dan para un artículo entero (en realidad sólo para algunos párrafos), así que, puestos a elegir, quedémonos con todo.

SYMANTEC CAFÉ: PASADO, PRESENTE Y FUTURO

Digamos que Café fue una de las primeras herramientas Java que no mostró una vergonzosa ineficiencia y lentitud para el desarrollo no trivial de applets (naturalmente el lector adivinará que el entorno no está codificado en Java, sino en una mixtura de C++ y Java, y Symantec ha anunciado que no piensa cambiarlo a Java sólo). La verdad es que el entorno tiene una apariencia muy profesional (como puede apreciarse en la Figura 1) muy del estilo de Borland Delphi o Visual Basic (lo cierto es que no sé quién saldría perjudicado de esta comparación). Y es que realmente se trata de una vampirización del conocido entorno de C++ de Symantec (lo mismo que ha ocurrido con Microsoft Visual J++), donde sólo ha habido (es un decir) que ir sustituyendo palabras y posibles por Café, Java y applets. La verdad, con todo, es que yo me encuentro muy cómodo con el IDDE de Symantec: el sistema de creación y uso de vistas mediante drag-n-drop, la apariencia multi-ventana desde diferentes perspectivas, la rapidez del entorno y la integración de los distintos componentes y vistas componen un conjunto finalmente efectivo y práctico para el programador profesional, si acaso éste existe. Este buen posicionamiento inicial lo ha mantenido y afirmado Symantec con las sucesivas versiones del producto (tan encadenadamente rápidas como el resto de la competencia), de manera que si esta revisión corresponde a la versión 1.50, cuando este artículo finalmente se publique se andará por la revisión 1.5X, 2.1 o 3.0 beta 2. En fin, todo un alarde.

 


Figura 1 : Profusión de ventanas en Symantec Café 1.50

 


El entorno dispone de múltiples ventanas desde la que escudriñar y editar puntos de ruptura, clases, llamadas de funciones, jerarquías de clases, proyectos, código fuente Java, hebras (threads), valores de datos/objetos, salidas de información, etc., con lo que parece que se cumplen los deseos del programador, sobre todo respecto de las tareas de depuración. El usuario Windows encontrará también que puede utilizar e incluir en sus proyectos Java los ficheros de recursos tan habituales en esa plataforma, de forma parecida a cómo lo hacía en el entorno C++.

La documentación electrónica de soporte incluye una guía de uso (Symantec Café Tutorial) algo descafeinada, una agradable introducción a las cuitas generales del lenguaje (Introduction to Java Programming), documentación del API Java y un manual de referencia del lenguaje (JLR).

En cuanto a la creación asistida de proyectos, los diálogos de la Figura 2 nos dan una idea exacta del tipo de ayuda que recibiremos del entorno:

 

 

 

 

Figura 2 : Asistentes de creación

 

Claro que el esto (Project Express) no parece muy lejano de una simple ayuda mecanográfica (nombre y tipo del proyecto, ficheros a añadir al mismo y propiedades iniciales), excepción hecha del AppExpress, un asistente de creación de applets, aplicativos independientes o clases Java que se ejecutarán en una Máquina Virtual Java. ¿Qué le falta a Symantec Café? Ser un entorno real de RAD y desarrollo visual en Java. ¿Y el futuro? Symantec Visual Café, que revisaremos un poco más adelante.

UNA COMPARACIÓN RÁPIDA

Digamos que las características esenciales-diferenciales de los productos en liza directa son:

Symantec Café

Un precio adecuado, un entorno visual potente y unas perspectivas prácticas de RAD (debido a la inminente aparición de Visual Café), a la vez que un soporte específico para Mac, convierten a este producto en un buen candidato para desarrollo individual quasi-multi-plataforma (por estar singularmente basado en la AWT y, en el caso de Visual Café, en la incipiente plataforma de componentes Java Beans). Junto con el producto de Microsoft, y debido a su bajo precio, configuran un deseable equipo de dos componentes, aunque Visual Café puede desnivelar temporalmente la balanza al lado de Symantec.

Microsoft Visual J++

Basada en el ideario de Developer Studio, la fuerza de este entorno, a más de un precio realmente asequible, se sostiene en su perfecta complementareidad respecto de ActiveX, el conjunto de tecnologías de integración de Microsoft. Teniendo en cuenta que la implementación de la Máquina Virtual Java de Microsoft es la de referencia en las plataformas Windows, el programador que se mueva en éstas verá facilitada grandemente su labor con este entorno.

Sun Java Workshop

Se trata del producto de referencia de la compañía de referencia en lo que a Java respecta. Esta característica lo troca en obligado (que no en único), pese a su precio superior, para las corporaciones que se estén planteando desarrollos de software distribuido en Intranet/Internet. El entorno es del tipo “visor Internet” con menúes y persistencia de vistas y es el más lento de los tres (quizás porque está codificado enteramente en Java).

Figura 3 : Comparación amable de entornos Java

Como puede apreciarse, los criterios de elección dependen más del contexto económico-estructural del cliente que de las supuestas bondades de los productos. Teniendo en cuenta que el código de Microsoft Visual J++ funciona con algún pequeño retoque en Symantec Café (por ejemplo en los brazos/corchetes de las construcciones try/catch), excepción hecha del soporte específico de COM/DCOM que proporciona Microsoft, el uso indistinto de las dos herramientas puede representar una cierta garantía, aunque mínima, de portabilidad. Podríamos decir que Café representa el estadio intermedio entre MS y Sun. Respecto del producto de estos últimos mejor será, por las diferencias de planteamiento, reservarle un artículo aparte.

En la práctica puedo anunciarles que yo mismo he utilizado Symantec Café para el desarrollo de un applet que se ejecutará en un conocido servidor comercial y que el resultado ha sido satisfactorio: tanto como el que me han procurado los otros entornos. Pero Café me ha resultado especialmente fácil de usar, por lo que lo he utilizado con cierta asiduidad. Así están las cosas. De cualquier manera el lector interesado en comparaciones de milisegundos y eficacia appletística puede ojear en el web las pruebas realizadas con CaffeineMark, de Pendragón Software, o los enlaces a amables revisiones del producto que se pueden encontrar en http://www.symantec.com.

¿EXISTEN ENTORNOS DE PROGRAMACIÓN JAVA?

¿Java? ¿Tanto trabucar para acabar en simples entornos? Y es que los productos que se han nombrado están bien, pero no tienen nada que envidiar, como tales productos, a los viejos entornos Smalltalk y, por supuesto, están muy alejados de los nuevos. Y no hablemos de C++. Lo cierto es que Java es, como bien afirma Sun, una plataforma y no un mero lenguaje, y por tanto las herramientas de desarrollo Java debieran suscribir este hecho diferencial. Java necesita de entornos para la creación de software distribuido (y recapacite el lector que los meros applets resultan claramente insuficientes per se para tal fin), sistemas emisores/receptores, colaboraciones cliente/servidor, sistemas de trabajo cooperativo para equipos disgregados geográficamente, componentes universales (Java Beans, ¿cómo no?), capacidades de codificación visual, bibliotecas no-intrusivas, integración total del ciclo de vida del software y arquitecturas embebidas de replicación, entre otras cosas. Claro que esto poco tiene que ver con lo hasta ahora descrito en el presente artículo. Como consuelo cabe reseñar que el autor ya ha tenido ocasión de trabajar con tales herramientas en Java (como comentaré más adelante). Como consuelo aún menor habría que decir que, al menos, se están apercibiendo logros visuales en las herramientas más conocidas.

VISUAL CAFÉ

Este es el nuevo producto (actualmente en fase de “preview”) que, aprovechando compilador, arquitectura y esquemas de Symantec Café, proporciona una renovada interfaz muy al estilo de Borland Delphi: los cambios en las partes visuales generan el correspondiente código Java en las clases, mientras que la escritura de código origina el pertinente cambio en los componentes gráficos. En la Figura 4 puede apreciarse la expresividad gráfica del nuevo producto.

 


Figura 4 : Posibilidades visuales de Symantec Visual Café

 


Symantec Visual Café posibilita el trabajo de composición visual mediante paletas de elementos gráficos directamente insertables en los diálogos (frente a la mera utilización de ficheros de recursos de Symantec Café), el cambio del estado interno de los objetos mediante “Inspectores de Propiedades”,

a la vez que facilita la codificación de acciones entre componentes mediante las denominadas “Interacciones” entre objetos. Naturalmente estas interacciones se entienden únicamente desde su enfoque visual, pues en código no son más que líneas de uso de las posibilidades de la biblioteca gráfica del lenguaje (AWT) con algunos (pocos) añadidos. Visualmente el esquema de trabajo varía un tanto, pues si pulsamos el botón derecho sobre un componente gráfico, podremos acceder al asistente de Interacción, que nos preguntará primero que acción se desea controlar (dependiendo del tipo de objeto en cada caso seleccionado), para que en un segundo diálogo decidamos qué efecto tendrá tal acción. Así, por ejemplo, si deseamos que al pulsar un botón se inserte un ítem con el título del botón en una lista situada en el mismo diálogo, acudiremos al asistente de Interacción en el botón, y éste nos mostrará las posibles acciones sobre el mismo (OnClick, OnLostFocus, OnGetFocus). Una vez seleccionado “OnClick” se nos pregunta con qué otro objeto se desea interactuar, y aquí elegimos la Lista, tras lo que el diálogo nos muestra las acciones posibles a realizar en la lista (añadir una cadena, limpiar la lista, borrar un ítem de la lista, etc.). Ahora pulsamos el botón “Siguiente” y pasamos al siguiente diálogo que nos pide lo que ya hemos elegido: una cadena para añadir a la lista. Y esta puede ser un literal, una variable o una cadena sacada de otro componente del diálogo. Elegimos esta última opción y seleccionamos (por medio de su identificador) el botón del que partiría el evento de click, y de las propiedades de éste vemos que el asistente únicamente nos deja seleccionar la etiqueta, tal y como aparece en la Figura 5.

 

Figura 5 : Asistentes de Interacción entre componentes

 


En definitiva encontramos que se ha añadido dentro de la clase correspondiente al applet de trabajo el siguiente código:

void button1_Clicked(Event event) {

// to do: place event handler code here.

list1.addItem(button1.getLabel());

}

¡Oh! ¡Esto parece perfecto! Bueno, yo diría que es agradable, pero no perfecto. Resulta que no queda constancia en el sistema visual de las interacciones realizadas, pues el asistente es un mero generador de código. Claro que esto es más de lo alguno podría esperar, pero mucho menos de lo habitual en productos Smalltalk como ParcPlace Visual Smalltalk o IBM VisualAge Smalltalk (y es que Java no cuenta con la interpretación dinámica de que elegantemente hace gala Smalltalk). Aunque con el cercano advenimiento de IBM VisualAge for Java la competencia está servida.

LA INSOPORTABLE LEVEDAD DE LAS RECOMENDACIONES

Cualquier programador individual con sus ansias puestas en Java, con curiosidad, o dispuesto a llenar de dibujos animados el web debería probar Symantec Café. Empero si lo que se desea es un desarrollo de software un tanto más serio, habría que recalar más bien en Symantec Visual Café, que en su librería de objetos contempla un acercamiento al esperado sistema de componentes Java y que incorpora significativos avances visuales respecto de los otros entornos. Se echa a faltar, con todo, soporte para el trabajo en equipo y para aquella ristra de características deseables que se expuso anteriormente. Pero la tecnología es joven: pese a ello no molamos el café a golpes de martillo: seamos pacientes: seguro que las maquinillas de café mejorarán (probablemente con applets, para hacer compañía a las tostadoras), pero en tanto cumplen sobradamente con su papel asignado.

ENTORNOS JAVA DE FÁBULA

¡Vaya! Se me olvidaba que les anuncié que existe al menos una plataforma turbadoramente bien ideada (si exceptuamos la escasa velocidad actual del entorno de desarrollo) para la construcción de sistemas cliente/servidor, para Intranet/Internet, basados en la tecnología Java, pero me parece que voy a dedicarle mejor un próximo artículo entero, a la vez que termino de usarla en un proyecto crítico en Java, con lo cual saldremos ganando a la vez yo y el siempre impaciente lector. Naturalmente los lectores javahólicos pueden, previa autorización psiquiátrica, contactarme para obtener algunas gotas de javadona. Y es que, por si acaso no lo dejé claro, las diversas tecnologías que se están agrupando e integrando bajo el epígrafe “Java” me resultan tremendamente atractivas y prácticas. A mí también.

 
 
 
volver a la página de publicaciones
 
 
 Pº. Castellana 188, 14º e · 28046 - Madrid · info@a4devis.com