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 |
|||||||||||
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:
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é |
|||||||||||
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. |
|||||||||||
¡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. |
|||||||||||
| Pº. Castellana 188, 14º e · 28046 - Madrid · info@a4devis.com |
|||||||||||