¿Qué fue de Visual J++?

By marjuanm | msproys | 10 Aug 2026


  Hola que tal a todos, sean bienvenidos a una nueva publicación; si no han tenido oportunidad de leer los artículos previos aquí dejo una lista de ellos pues están relacionados entre sí.

  En varias ocasiones hemos hablado de Java en este blog: a mediados de los años noventa, Java se estaba convirtiendo en una de las tecnologías más prometedoras de la industria gracias a su filosofía de ejecutar el mismo código en diferentes plataformas. Microsoft no quiso quedarse fuera de esa revolución y creó su propia herramienta: "Visual J++".

El nacimiento de Visual J++

  En 1996 Microsoft lanzó Visual J++, un entorno de desarrollo basado en Java que permitía a los programadores crear aplicaciones utilizando el lenguaje de Sun Microsystems desde Visual Studio. La idea parecía perfecta: Java tenía la portabilidad y Visual Studio ofrecía las herramientas de desarrollo que Microsoft ya dominaba.

  El problema fue que Microsoft comenzó a introducir extensiones y modificaciones orientadas específicamente a Windows. Entre ellas estaban las "Windows Foundation Classes (WFC)"ActiveX y otras tecnologías propietarias que facilitaban la creación de aplicaciones para Windows, pero alejaban a Visual J++ de la implementación estándar de Java. Es decir, Visual J++ era un Java adaptado para correr aplicaciones Windows pero sin que estas pudieran correr en otros sistemas operativos.

La respuesta de Sun Microsystems:

  Sun Microsystems, creadora de Java, consideraba que estas modificaciones ponían en peligro uno de los principios fundamentales de Java: la portabilidad. En octubre de 1997 Sun demandó a Microsoft, argumentando que la compañía había violado el acuerdo de licencia de Java al crear una implementación incompatible con las especificaciones de Sun. El conflicto se prolongó durante varios años y llegó a producir medidas judiciales contra Microsoft (tema al que se le dedicó un artículo en est blog hace algunos años).

  "¿Y por qué hizo Microsoft esto?", simple: monopolio. La Microsoft de los años 90's y primera década del 2000 no toleraba rivales y Java era una grave amenaza para su imperio; me explico.

  Hasta aquel momento los compiladores transformaban el código fuente en un archivo ejecutable, pero este quedaba ligado a la plataforma en la que fue desarrollado, y si queríamos usar características específicas del entorno pues con mayor razón (uno de los secretos del éxito de Visual Studio como hemos visto en los artículos previos). Pero con Java la situación cambiaba drásticamente.

  En lugar de tener un ejecutable atado a una plataforma en particular, se crea un "ejecutable" que tiene código neutro, para poder correrlo es necesario hacerlo mediante una máquina virtual llamada Java Virtual Machine (JVM). Esta máquina se encarga de traducir las instrucciones del ejecutable al entorno destino y así un programa que fue creado en Windows correrá en Linux o Mac OS y viceversa.

  Esto sembró el terror en Microsoft pues de pronto no se necesitaba programar en Visual C++, Visual Basic o cualquier otro entorno que Microsoft ofreciera. Los programas Java correrían en otros entornos y a Microsoft eso no le gustaba nada, nadita como dijera Ned Flanders: Microsoft debía encontrar la manera de retener a sus clientes y que no miraran a otro lado, al grado de quitarle el sueño a Bill Gates la situación.

  Así que Microsoft contraatacó y lanzó Visual J++ que, en apariencia era Java, se creaban "aplicaciones bonitas" en este entorno, pero.... las aplicaciones ya no podrían portarse a otros entornos porque estaban ligadas a tecnologías propietarias de Microsoft y el plan era simple: impedir que los programadores desarrollaran software para otros sistemas operativos. Era Windows o nada.

  Así estaba el monopolio de Microsoft en todo su esplendor en esos años (luego dedicaremos un artículo a una divertida anécdota de como Microsoft - o sus representantes - estaban dispuestos a hacer lo que fuera con tal de no dejar ir sus millones de dólares). Microsoft buscaba integrar Java profundamente con Windows (en beneficio propio clara está), mientras que Sun quería preservar la independencia del lenguaje respecto al sistema operativo.

  Finalmente, en enero de 2001 ambas compañías llegaron a un acuerdo: Microsoft pagó 20 millones de dólares a Sun y se terminó el acuerdo de licencia que permitía a Microsoft utilizar la tecnología Java de Sun. Microsoft ya no daría soporte a la tecnología Java no distribuyó Java de manera nativa en Windows XP (aunque después lo obligaron a hacerlo) y ahora Microsoft se centraría en otros proyectos.

El final de Visual J++ y el nacimiento de C#:

  Microsoft dejó de apostar por Visual J++ y posteriormente abandonó su máquina virtual de Java una vez que había conseguido frenar la amenaza de Java para su imperio. En 2002 presentó Visual J#, una herramienta de transición para programadores que conocían Java y querían desarrollar aplicaciones para .NET. Sin embargo, Visual J# tampoco estaba destinado a convertirse en el nuevo Java de Microsoft y solo era para ir "acostumbrando" a los programadores Java a su nuevo entorno en camino: .NET Framework que hasta cierto punto era una calca o copia de la JVM pues ahora los programas desarrollados para esta plataforma podrían correr en cualquier versión de Microsoft Windows sin quedar atados a características propias de la versión en desarrollo.

  Es decir, si trabajamos con Windows XP y queríamos que nuestros programas se ejecutaran en Windows 98 no podríamos a no ser que los programas no tuvieran ninguna atadura a este sistema operativo, pero si así era, como por ejemplo la función MessageBoxW que permite mostrar los avisos compatible con Unicode pero que no existe en versiones anteriores a XP. Funciones similares a estas ahora estaban disponibles en .NET y los programas creados para este entorno siempre y cuando hubiera una máquina virtual de .NET en el destino correrían sin problemas.

  J# no compila el código fuente en lenguaje Java a bytecode Java y no admite el desarrollo de applets Java ni la capacidad de alojarlos directamente en un navegador web. Tampoco tiene soporte para la interfaz nativa de Java (JNI) y la interfaz nativa sin formato (RNI) ni soporte para la invocación remota de métodos (RMI); tecnologías fundamentales en Java pero ausentes en este entorno de Microsoft, que como dijimos, no era más que una herramienta de transición.

  Con Java fuera Microsoft necesitaba un lenguaje propio que pudiera utilizar dentro de su nueva plataforma .NET sin depender de la tecnología de una empresa rival. C# tomó ideas de C++, Java, Delphi y otros lenguajes, pero fue diseñado específicamente para .NET, Microsoft lo presentó públicamente en junio de 2000 y la primera implementación ampliamente distribuida llegó como parte de la iniciativa .NET.

  Su objetivo era ofrecer un lenguaje moderno, orientado a objetos, seguro y productivo, manteniendo una sintaxis familiar para los programadores de C y C++ pero con "ideas" Java gracias a la plataforma .NET en donde vivía. Visual J++ fue reemplazado primero parcialmente por J# y, finalmente, por C# como el lenguaje principal de Microsoft para la nueva plataforma.

Conclusiones:

  "¿Ganó Microsoft la guerra?", tristemente sí y se salió con la suya, "¿perdió Sun algo en este camino?", sí y no, sí porque por años tuvo que competir contra una copia que lo único que quería era ocupar su lugar y que los programadores no pudieran portar sus programas a otros entornos aunque la leyenda decía "Java". No, porque Java sigue existiendo y es una excelente opción para programar, Java está muy maduro hoy en día comparado con el Java de hace 30 años y muchas cosas que en ese entonces no se podían hacer hoy en día son una realidad. Como por ejemplo tener controles gráficos decentes y muy personalizables gracias a Swing, mientras que el Java de los 90's solo usaba AWT con una apariencia sumamente rústica.

  También existen hoy en día entornos de programación para Java totalmente visuales que en nada envidian a lo que ofrecía Microsoft con su Visual J++ como por ejemplo Netbeans, Intelli J IDEA, Eclipse y otros. Así Java terminó fortalecido y sigue existiendo hasta el día de hoy.

  Espero este artículo haya sido de su completo interés, "¿conocían este lenguaje de programación?". Mil gracias por su tiempo y nos veremos pronto en otro interesante artículo. Dejo a continuación algunas capturas de pantalla acerca del entorno de Visual J++, solo una vez lo instalé porque venía de regalo con una revista informática y supongo que era un demo porque después de un tiempo ya no pude usar el IDE y me quedé trabajando solamente con la versión de línea de comandos (Java básico). Un agradecimiento especial a Shoplack por la imagen que ha sido usada como portada de este artículo. 

Visual J++

Visual J++

Thurrott, un agradecimiento.

Visual J++

itWeek, un agradecimiento también.

 

 

 

 

How do you rate this article?

1


marjuanm
marjuanm

I'm a VB.NET Programmer, but too programming on PHP, greetings.


msproys
msproys

Blog informático para dar a conocer mis proyectos, soy desarrollador de sistemas y partidario del software libre. Por medio de este blog estaré dando a conocer algunos de mis trabajos, así como publicando diversos códigos fuentes útiles.

Publish0x

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.

Page not displaying correctly?