Hace poco leí la noticia menos esperada, "Netscape ha muerto", decía un titular de noticias sobre la Red, se basaban en el hecho de que era ya un porcentaje pequeño de personas que utilizaban Mozilla para acceder a la Red. Hasta hace un año yo usaba Netscape Communicator para navegar, era impensable utilizar Explorer por sus fallas de seguridad, su lentitud, las constantes noticias sobre agujeros en Outlook, pero ahora, el tan vapuleado Explorer ha venido a reemplazar a Netscape.
La motivación principal de el presente artículo es brindar una visión
general del trabajo del Nuevo Netscape 6 y Explorer 5.5 con relación a Java,
aunque sazonado con algunas otras características. La principal diferencia entre
ambas distribuciones está en la alianza de Netscape con Sun, de esta forma la
nueva distribución de Netscape puede ejecutar Applets que antes eran
impensables de ejecutar desde el navegador, por ejemplo, el método nextBoolean()
de la clase java.util.Random, que genera un booleano aleatorio true
o false, para hacer sorteos de monedas por ejemplo, la prueba
palpable esta aquí, la siguiente applet que implementa tal método:
Si tienes Netscape 6 como navegador podrás ver que al pinchar el botón
"Generar", la caja de texto mostrará "cara" o
"sello", según sea el resultado, pero si tienes Explorer 5.5 entonces
el botón no producirá ningún efecto, ¿la razón?, nextBoolean()
es un método de Java 2, y además de Sun, el entorno de ejecución, Java
Runtime Enviroment, en el caso de Explorer es el de Microsoft, aquel por el cual
perdió un juicio contra Sun.
En teoría la instalación del Java Plugin de Sun debería subsanar este error (el plugin funciona bien en Communicator), pero no lo hace, en el caso de Netscaoe 6 basta con instalar Java 2 Runtime Enviroment después de Netscape y listo, si la tienes instalado en tu computadora entonces debes reinstalarlo, una operación que no te llevará mucho tiempo. Este incidente es, en resumen, la gran diferencia entre ambos navegadores en cuanto a Java se refiere, la plataforma Java 2 inclina totalmente la balanza hacia Netscape.
¿Porque Microsoft se resiste?, es simple, como todo lo demás, Microsoft quiere que todos usen su compilador para Java, para diseñar y escribir Applets, es decir utiliza Explorer para atar de manos a Java 2, el diseño de Applets con interfaces más eficientes y nuevos métodos no es posible en un mundo que no las soporta, por suerte ya está aquí Netscape 6, este artículo no pretende defender a Netscape, pero es evidente que en cuanto a Java se refiere Mozilla lleva la delantera.
Swing es un manojo de clases alternativas a las MFC, son las JFC(Java
Foundation Classes), dan algunas ventajas sobre las MFC sobre todo en su
manejo en Java, si su suposición es que Explorer tampoco las soporta, entonces
está en lo cierto, por ejemplo, la siguiente Applet está extendida de
javax.swing.JApplet, y es la misma de que al demo de nextBoolean()
vista anteriormente, solo que con componentes puros Swing, como
javax.swing.JButton y javax.swing.JTextArea.
Si tienes Explorer ni siquiera verás la interfaz, ningún botón, ninguna caja de texto sólo el mensaje, load: class NextBooleanDemoSwing not found ¡un engaño!, ¡te dicen que la clase no existe, pero es sólo porque no la soportan!, no es necesario decir lo que sucederá al ejecutar el Applet en Netscape 6.
El entorno de ejecución que utiliza Explorer para ejecutar Java está en C:\Windows\Java o en C:\WinNT\java en el directorio packages están unos ZIPs, que contienen las clases utilizadas, es factible creer que copiando los JAR que hay en el directorio LIB del directorio donde está instalado el JRE, comúnmente c:\Archivos de programa\JavaSoft\JRE\1.x.x, pero no funciona, es posible que funcione al descomprimir una de las librerias, por ejemplo rt.jar, y luego agregar los archivos descomprimidos a uno de los ZIP, pero no he logrado hacer tal cosa, al descomprimir los archivos JAR resultan errores de decodificación, lograr eso sería un gran avance, y si es que funciona sería mucho mejor, pero es posible que no resulte del todo bien, ya que la JVM de Microsoft es distinta a la de Sun.
Lo anterior nos lleva a otro problema ¿qué hacer cuando nos topamos con clases nuevas?, por ejemplo las clases que Borland incluye en sus paquetes con JBuilder, con el JRE de Sun bastaría agregar los JAR de las librerias al directorio LIB, y listo, pero como ya hemos propuesto anteriormente, con el "JRE" de Microsoft eso sería casi imposible, no sólo por que no se reconocerían las librerías sino también porque por que Borland se ha basado en la JVM de Sun para escribir sus clases.
La gran mayoría de desarrolladores y programadores Java hacen su trabajo con la JVM de Sun, desde ese punto vista Explorer es un obstáculo a vencer. el parentesco más cercano de la JVM de Sun com la de Microsoft es la Plataforma 1, obsoleta ya en estos instantes, Explorer fuerza a los programadores Java a diseñar y escribir programas para una plataforma pasada de moda cuando hoy en día se cuenta con otra más robusta.
El Applet que tenemos a la izquierda se ha compilado usando la opción -target del comando javac, -target fuerza la compatibilidad con versiones anteriores de la JVM, lo hace con las versiones 1.1, 1.2 y 1.3, la actual, lamentablemente no sirve, la opción por defecto al compilar es -target 1.1, esto hace que el bytecode generado sea compatible con las JVM 1.1, 1.2 y 1.3, así que de nada sirve compilar con esa opción, las otras dos, 1.2 y 1.3, son más radicales, copilar con -target 1.2 no permite que los bytecodes pueden correr sobre una JVM 1.1. -target 1.3 hace imposible correr los programas en JVM 1.1 y 1.2.
He buscado muchos métodos para hacer correr Applets Java 2 en Explorer, y ninguno me ha servido, cada intento me dice "mala idea". Hasta hace poco ejecutar Applets Java 2 implicaba tener Netscape Communicator con un plugin de 8MB instalado, ya que el JRE no servía para Communicator, ahora disponemos de una opción menos engorrosa, más económica, y garantizada para correr sobre otras plataformas, Linux por ejemplo como punto más fuerte, ya que Netscape 6 también está disponible para Linux.
Si ejecutas Netscape 6 y ves al muñeco Java en la barra del reloj,
entonces
ya estás listo para correr Applets Java 2, sino entonces puedes hacer dos
cosas.
Uno: Descargar Java 2 SDK, que instala el JRE para la versión que descargues, si ya tienes instalado Java 2 SDK, y no puedes ver el icono en la barra del reloj, entonces sólo lo debes volver a instalar, y cargar Netscape 6.
Dos: Descargar sólo el JRE e instalarlo.
Lo mejor es que descargues el SDK, actualmente va por los 30MB, pero te permite escribir y compilar tus programas, pero si no sabes programar y sólo quieres estar seguro que vas a poder correr todo tipo de Applets entonces lo mejor es que descargues sólo el JRE, que es de 7MB, más o menos.
Aquí viene lo malo, la velocidad de carga de Netscape, tradicionalmente Navigator ha consumido un gran tiempo de carga, en comparación con Explorer, incluso en mi PC, un Athlon de 750 con 192MB RAM no es tan rápido como Explorer, además de la memoria que consume. Es, en apariencia, más pesado que Explorer, aunque sus módulos de instalación son más pequeños, la ventaja viene después, he probado Netscape 6 para navegar y es más rápido que Explorer, la carga de texto se hace mucho más rápido, incluso en un Pentium MMX de 200 con sólo 64MB de RAM, al filo de navaja, aunque sigue siendo destacable la lentitud de Netscape en ese ambiente, pero corre, es decir no es una tortuga, pero si es evidente que la máquina se esfuerza al tener otra aplicación abierta.
La principal razón para tal cosa la causa Microsoft, no se trata de decir que Windows es anti Netscape, pero en las últimas versiones de Windows, 2000, 98 y Me, Explorer es un componente de sistema, es obvio entonces que debe cargar más rápido y consumir menos recursos, mientras que Netscape es un inquilino indeseado para Microsoft.
También está el tema de la seguridad y Messenger. Casi, sino todos, los virus de correo se han escrito en VBScript, para Outlook Express, y se han producido tantos parches de parches que ya perdí la cuenta.
Netscape va a delante en la carrera de los navegadores en cuanto a compatibilidad con Java, puede ejecutar Applets Java 2 y también Applets que corran sobre Explorer, por ese lado la principal debilidad de Explorer es ser un producto Microsoft, que se niega a recoger estándares y quiere imponer los suyos. Por otro lado, la ventaja obvia para Explorer es su velocidad de carga y su ligereza en la memoria, no así Netscape que es un poco pesado de digerir por Windows, aunque eso puede hacer parecer que Explorer gana en cuando a velocidad sucede lo contrario, Netscape lo aventaja porque carga primero el texto y al final las imágenes, no espera a que lleguen las imágenes para mostrar el contenido de la página.
Si tienes una PC estándar para estas épocas, Pentium II, III o IV y AMD K6-2, Athlon o Thunderbird, te recomiendo Netscape, es más seguro, más rápido, y a tu máquina no se notará mucho indigestión que le causa a Windows, si tienes una PC antigua, Pentium, x86, AMD menor a K6, sería preferible que lo uses solo, es decir, sin usar otras aplicaciones al mismo tiempo.