Java por aquí, Java por allá, Java por acullá: tostadoras y electrodomésticos Java; applets, aglets y servlets; JavaBeans pululantes y ActiveX supurantes; Java sí, Java quizás. En definitiva: Java indiscriminado por doquier. Así que se podría decir que Sun comete el software (en su sentido de voluntario pecado doloso), o casi también que lo acomete (en su acepción de embestida brutal). Ciertamente, al fin, nos sentimos presos de una cierta “era Java” en la que las promesas son el presente y el presente es la mera acumulación inercial de las promesas pasadas. O sea: aire, aire, aire y... ¡Java! Lo malo –ah- es que el aire lo llena todo. Perdón: donde no hay lleno, donde no hay segura completitud, allí el aire queda. Así que un viejo programador que no sepa codificar en Java se siente, ante las nuevas exigentes generaciones, como el padre al que su hijo de seis años ha de enseñar a manejar el aparato de música (probablemente negro y con multitud de botones y mandos). Java, Java, Java. Unga, unga, unga. Java y rito se parecen, y la perversión parece extenderse por todos los estratos profesionales y sociales. Así, a la vez que los estudiantes reclaman aprender Java, los profesores se esfuerzan por asumirlo, y ambos yerran en su consideración del fenómeno Java como el triunfo de un lenguaje. Por otro lado, los ejecutivos tipo-Dilbert acarician con fruición a los nuevos términos “javáticos” que acompañarán a los absurdos “proactive”, “feedback” y “empowerment”. Pero, en realidad, que todo sea Java no es el verdadero problema, pues el mismo término “moda” se sustancia en una sección temporal: o sea, las modas pasan. El peligro, desde mi punto de vista, radica en la guiada oposición/negación al fenómeno Javiano: es decir, en la fuerza sentida de la oposición que, sin sustento comercial, ni siquiera existiría. El problema se da, naturalmente, en la percepción de lo no deseado. Y es que... ¿puede ser un programa Java-amigable? ¿O podría resultar Java-compatible? ¿O más bien habría que hablar de Java-licenciado? ¿O quizás cabría mentar lo Javino (en alusión a la incierta divinidad)? Humm. Java avanza como avanza el pecador por la senda de lo oscuro, o más bien como se abalanza el asesino en asesinar: porque cada asesinato es un hito que anticipa el reto del siguiente; porque el marketing fuerza a los usuarios a que compelan a Java a seguir matando. Ah, ah. Asesinos, asesinatos: ¡Cualquiera diría que el software es una actividad cruenta! Pero es que... ¡realmente lo es! El software, ayudado por la estulticia de los profesores, “asesina” el interés de los alumnos; “conspira” para modificar su prudencia algorítmica; “mata” su criterio y “ensangrienta” y emborrona su futuro profesional. Claro que esto ya se hacía en España sin necesidad de Java. Java es, en breve, la ametralladora que sustituye a la pistola de un tiro. INGENIERÍA versus COMPUTACIÓN Pero, ¿tan malo es Java? ¿De tanto daño es capaz? ¿Quién es Ricardo Devis? ¿Existe C++? ¿Cómo clonan a los directivos de las revistas de informática? Todas son preguntas sin resolver, arcanos de la computación. Computación. Computación: la parte de la informática que no se inmuta ni arredra ante nada, porque nada tiene que perder, y muy poco que ofrecer (a excepción, naturalmente, de la muy esperada inmolación pública de catedráticos, profesores, asociados y algoritmos, en cualquier orden). Afortunadamente para los profesores, en la Universidad española se enseña, y mayormente se comete –de nuevo-, la computación. Nada de ingeniería. Nada de software. Sólo lenguajes como pública manifestación de su restringida utilidad como vehículo del más superior pensamiento computacional. Claro que este tipo de académicos (en su acepción más gratuita) está tan reñido con la realidad, que algunos de sus alumnos podrían relatar levitaciones y disociaciones personales. Física y Matemáticas (por no nombrar cosas peores) campan desvergonzadas entre software, herramientas y prebendas académicas. Así que métodos formales, inercias congresuales y, sobre todo, asunciones profesionales se reparten la disminuida atención de los alumnos en universidades y foros equivalentes. Computación contra Ingeniería. Pero no ingeniería en abstracto, sino ingeniería del software: esto es, un tipo de ingeniería “constructiva” que, quizás, efectivamente no necesite de la totalidad del aparato matemático afín a otras ingenierías, sino que más bien lo necesite mínimamente para alumbrar (y aquí me reconcilio con el lenguaje) la creación de modelos software de la realidad. Y es que la algoritmia está bien, pero la realidad es insuperable. Y, claro, la realidad software se apoya la insuperable adicción a la realidad, no a sus características computacionales. CUITAS DEL APRENDIZAJE SOFTWARE ¿Qué demonios me importan los algoritmos, cuando mi problema son los videos y su alquiler? ¿Qué me importa el cálculo tensorial de mi bonita casa, o qué me aporta saber del interno funcionamiento del televisor? Nada me sirve sino para ser usado, así que del televisor yo suelo conocer el mando a distancia, y de las personas –inicialmente- su porte y amabilidad. Los alumnos (en su amplio sentido empresarial) demandan Java, y Java demanda atención. Te enseñan el lenguaje, pero no es suficiente; te enseñan a no aprender sólo el lenguaje, pero resulta improductivo; te enseñan que el Esperanto resultó fallido por artificial, pero te insuflan, naturalmente, el mediocre lenguaje de programación Java. Oh, quieren decir: todo está delicadamente interconectado: el lenguaje Java es la mera herramienta para operar con la plataforma Java. Y esto resuena a “el cilicio es una herramienta para entrar en contacto con Dios”. La perversión se extiende y, consecuentemente, Java se expande; el programador propone y Sun (perdón, Javasoft) dispone. Java, Java, Java. Sun, Sun, Sun. Cuac, Cuac, Cuac. Patos, soles e islas. DE LOS DUELOS Y LAS PENAS No sé ustedes, pero yo, cuando en una película del oeste aparecía un pistolero eficaz pero de difícil catadura, deseaba que apareciera un pistolero claro que lo venciera limpiamente: simplemente siendo más rápido. Evidentemente Java presume de ser el pistolero más rápido de nuestro sistema solar (y del suyo), e inicialmente su duelo con el terrateniente Microsoft revistió algún interés: el mismo que podía procurar la lucha entre Godzilla y el monstruo de turno; esto es, el interés de la disputa para salvar o no los hogares de gente que no conocemos y que, merced a la simpatía hierática del monstruo, casi odiamos por contraposición. Java parece ganar y, de hecho, gana en los juicios, se aumenta en los periódicos y, hábilmente, no se publicita en exceso. DEL SOL Y LOS VAMPIROS Java (por JavaSoft, que es por Sun, y que en realidad es por un aluminoso consorcio) está rápidamente eliminando a sus adversarios con la eficaz política de absorberlos o, mejor, vampirizarlos: así que, por ejemplo, Microsoft ha de penar por ser el acólito inducido de Drácula que se ha de tragar escarabajos y otras inmundicias para contentar a Sun. Pero, esperen, ahí están las hordas mediáticas y... ¡demonios! Acabo de ver a mi mejor amigo con las inconfundibles marcas javáticas en el cuello (applets que simulan una doble mordedura y que, además, se mueven en local, simulando nuevamente supurar sangre y, esporádicamente, mostrando anuncios holográficos del esperado JDK 1.2). ¡Dios mío! Se me acerca y pretende hipnotizarme con algunos applets. Afortunadamente su ancho de banda es pequeño, así que mientras se cargan en su browser aprovecho para protegerme, escuchar Tanhauser y casarme. Así las cosas y entreviendo que soy un enemigo poderoso, mi antiguo amigo (Jaime, para más señas) me lanza algunos servlets, que yo eficazmente rechazo disfrazándome de maitre y preguntando: “¿Estaban ustedes invitados?”. Los servlets mueren, naturalmente, de vergüenza. Jaime me lanza, entonces, una pestilente horda de JavaBeans, y me anuncia que el monarca de CORBA (un lejano país, tan lejano como Ardiquistán y del que sólo me suena el nombre por haberlo oído en el noticiario) le ha prometido soporte adicional y que... ¡Dios mío! ¡Un JavaBean se está comiendo a mi amigo Quique! Cuando sus ojos empiezan a manifestar el fenómeno “applet” (esto es, cuando en ellos aparece la frase “loading applet, please wait”), asumo que debo aniquilarlo antes de que acabe el proceso de carga. Así que escucho Tanhauser de nuevo, me divorcio y me caso y, seguidamente, le clavo un ActiveX en el corazón [1]. Pero... ¡menudo chasco! [2] Los sunáticos no tienen corazón, mayormente para evitar “imprevistas derivaciones sensitivas de un órgano ventricular”. Claro que los que dictaron tal norma (pagados por el consorcio mundial de confusión traductora) pensaban que el ventrículo es un dispositivo para hablar a distancia. O, al menos, algo asociado a muñecos y a su vida sexual. Mala cosa, en cualquier caso. Así que... ¡extracción! Naturalmente los acólitos Javianinos van equipados con chips Java sobrantes de la fallida aventura “FirstPerson” en las tostadoras, de forma que los zombis, además de amenazarte con la perdición eterna pueden tostarte algunas rebanadas de pan en su pecho. Así que a duras penas puedo escapar de tanta tentación. Claro que estoy empezando a ver hologramas del JDK y siento una terrible ansiedad por conectarme con el Java Developers Connection. ¡Dios mío! Quizás me contagié al probar aquel applet griego. Pero me enseñaron un certificado: todo estaba en regla. Y, además, yo no pagué: la chica-modelo-de-veintiún-años que seleccioné en el catálogo actuó basada en la irresistible atracción que yo le produje. Claro que estaba a oscuras, y que no todo parecía funcionar como esperaba. Pero es que yo no sabía lo que esperar. La verdad es que, ahora que lo pienso, aquella chica, en la oscuridad, tenía bastante pelo en el pecho. DE LO SERIO Y DE JAVA ¿Es Java bueno o malo? Quizá los lectores debieran leer –lean, lectores, lean- el artículo de Jeff Sutherland sobre “El Bueno, el Feo y el Malo”, que versa sobre lenguajes de programación. O quizás podrían echarle un vistazo a las páginas de ISE sobre Java, el resto de los lenguajes y su manifiesta inferioridad frente a Eiffel. Quizá los lectores simplemente deberían leer. Punto. O programar. O analizar y diseñar. O todo a la vez. Y es que, como les decía recientemente a un grupo de postulantes a un Master de Ingeniería de Software, su profesión consistirá en la apreciación que resulta de la comprehensión global del rango de soluciones posibles adecuadas a un dominio del “problema”. ¿Es buena la réplica? ¡Depende de la pregunta! ¿Es perjudicial el alcohol? ¡Depende de la medida! En definitiva, ¿es bueno Java? ¡Depende de su uso! ¿Es bueno el merchandising Java? ¿Existe James Gosling? ¿El puro de Clinton-Lewinski fue Java-enabled? Oh, personalmente me reconozco saturado de Java, pero mayormente de su publicidad encubierta, de su necesidad latente, de su siempre incipiente aplicabilidad. Lamento que Java, que propugna un eficaz, elegante y educado modelo de componentes, no pueda mantener la educación más allá de su implícito mensaje de que las normas de urbanidad habrán de cambiar para sujetarse al nuevo esquema Javiánico. Java, Java, Java. Ya va, ya va, ya va. Pero no acaba de venir. SQUEAK Squeak es, en inglés, el término que designa bien un corto y agudo sonido, bien algo que se alcanza –o se pierde- por los pelos. En todo caso parecer referirse a la fugaz apreciación, a la desarbolada consecución, al final desgraciado. O sea: o lo mejor o lo peor, pero casi en el último momento. Y tal parece el futuro de Squeak, el renacido Smalltalk apadrinado, entre otros, por Alan Kay y Dan Ingalls. Y David Ungar. Y mucha más gente, por no llamarlos visionarios, gurúes y rompecorazones técnicos. Squeak es el pasmo de triunfar o fracasar, la consecución o la pérdida en el último minuto; el inesperado triunfo o el temido fracaso. Squeak es, al fin, Smalltalk genuino en la era Java y post-choque-Java. Squeak es, en definitiva, según sus autores, “una implementación Smalltalk abierta y altamente transportable cuya máquina virtual está escrita enteramente en Smalltalk, de forma que es fácil de depurar, analizar y cambiar”. Además Squeak procura un conversor Smalltalk-a-C que soluciona las cuitas de eficacia en ejecución. Además Squeak es... ¡Un momento, un momento! Si vemos nombres, veamos nombres. DE NOMBRES, MARCAS Y DIBUJOS Squeak es el resultado del trabajo de próbidos smalltalkers, mayormente provenientes de Apple, para procurar no una alternativa a Java, sino más bien solución a los problemas actuales de modelado de sistemas de información. Walt Disney Imagineering es el entorno, y Alan Kay (de Apple a Disney, rememorando el clásico libro de Sculley) el profeta (de nuevo). Así que... ¡sorpréndanse, lectores! Yo estoy sorprendido. Squeak es Smalltalk diseñado como Smalltalk y construido incrementalmente como Smalltalk, con soporte independiente de la plataforma para el procesado de color, sonidos e imágenes. Los nombres envueltos en el proyecto son impresionantes, pero aún lo es más el hecho de que Squeak sea... ¡gratuito! [3] Es decir, cualquiera puede descargarlo de Internet desde http://squeak.cs.uiuc.edu [4] , y seguidamente alucinar con sus capacidades embebidas para el tratamiento de sonidos e imágenes. No hay royalties para aplicaciones comerciales, de la misma forma que no hay licencia sustantiva para la modificación del código fuente de Squeak (con la única limitación de la razonable obligación de publicar en Internet cualquiera de tales variaciones). DE SMALLTALK Y JAVA Cuando imparto cursos de Java, los asistentes suelen quedarse prendados de Smalltalk. Esto bien puede deberse a que les pondero razonablemente sus ventajas o a que les amenazo con C++. En cualquier caso, mi experiencia constata que es difícil liberarse de un Smalltalk bien explicado. Contrariamente, Java está resultando ser una herramienta mortal: cada vez más grande, más pesada y más oscura. Cada vez más parecida a UML: una promesa que va deviniendo en profecía: todos sucumbiremos a la presión. Claro que esto no es rational. ¿O sí? La diferencia entre Smalltalk y Java es la que media entre Mickey Mouse y un ratón de un niño-que-promete. O sea: la diferencia entre lo que gusta y lo que meritoriamente-debería-gustarte-quizás-mañana. HABEAS CORPUS l 20-10-98 tuvo lugar en OOPSLA la sesión de introducción del grupo de usuarios de Squeak. Las demostraciones del sistema –el mismo que puede descargarse de Internet- arrancaron “guaus” y esperanzas no cruentas, conforme a las que yo siento: no hay que matar a Java (entre otras cosas porque no sabemos dónde tiene su corazón y, sobre todo, porque dudamos de si el pistolero sustituto será mejor o peor), pero hay que abrir la puerta a la ilusión. Y Smalltalk es la sólida ilusión. Y Squeak es su materialización. Squeak es, en muchos sentidos, Smalltalk-80, así que no abundaré en la descripción de su sintaxis o capacidades, aunque sí quisiera resaltar su uso de sockets, sus embebidas posibilidades auditivas y de manejo de imágenes, sus mejoras sobre el recolector de basura, su esquema de transportabilidad por red, etc. O sea, que no quisiera hablar de lo que mi entusiasmo me impele a contar. Mi consejo es que no se lo pierdan, o se perderán el pasmo inicial del que podría ser el software de plataforma para el próximo milenio. Java, Java, Java. Squeak, Squeak, Squeak. ¿No les suena futurible? [1] Lo siento: tampoco el ActiveX llega al corazón. Al menos al mío. ¿O será que ya estoy vampirizado? Humm, siento ganas de proferir “componentware”. Claro que tal vez sea que la comida de hoy me está repitiendo. Al tiempo. [2] En realidad el sol (Sun) sólo mata a los vampiros que no están afiliados al sindicato. Es decir, que Java es la vacuna para no perecer ante Sun. [3] Squeak se liberó en Internet en septiembre de 1996. [4] Squeak 2.2 ocupa menos de 4 Mb en un fichero ZIP. |
||
| Pº. Castellana 188, 14º e · 28046 - Madrid · info@a4devis.com |
||