Visual J++ es la implementación descontinuada de Java por parte de Microsoft . La sintaxis , las palabras reservadas (palabras clave) y las convenciones gramaticales formales son las mismas que las de Java. Se introdujo en 1996 [ 1 ] y se descontinuó en enero de 2004, [ 2 ] siendo reemplazada en cierta medida por J# y C# .
La implementación, MSJVM , no superó las pruebas de conformidad de Sun Microsystems , lo que derivó en una demanda por parte de Sun, el creador de Java. Microsoft dejó de brindar soporte para MSJVM el 31 de diciembre de 2007 (posteriormente, Oracle compró Sun y, con ella, Java y sus marcas registradas). Sin embargo, Microsoft volvió a distribuir Java oficialmente en 2021 (aunque no incluido con Windows ni sus navegadores web como antes), es decir, su compilación de OpenJDK de Oracle , [ 3 ] que Microsoft planea mantener durante al menos 6 años, para versiones LTS, es decir, hasta septiembre de 2027 para Java 17.
J++ comparado con la implementación de Java de Sun
Aunque J++ se ajustaba a la especificación del lenguaje Java , Microsoft no implementó ciertas características de la implementación oficial de Java de Sun en su línea de productos Visual J++. La invocación remota de métodos (Java RMI) y la interfaz nativa de Java (JNI) son ejemplos de ello. [ 4 ] [ 5 ]
Además, J++ implementó otras extensiones que no formaban parte de la implementación de Java de Sun. La inclusión de funciones de devolución de llamada y delegados para el manejo de eventos definió aún más a J++ como un lenguaje completamente diferente, basado simplemente en un concepto de diseño ya existente.
Además, las aplicaciones J++ no se ajustaban al mismo método estandarizado de acceso a las funciones del sistema operativo subyacente que cualquier otra aplicación Java bajo el SDK de Java de Sun. En la implementación de Microsoft , un marco subyacente llamado J/Direct proporcionaba un mecanismo base que permitía a las aplicaciones J++ eludir por completo las bibliotecas de clases y la API de Java para acceder al sistema operativo subyacente. Gracias a este atajo que evitaba el marco Java original , las aplicaciones J++ eran más eficientes a la hora de aprovechar las funciones de la API de Win32 que las aplicaciones Java.
Las aplicaciones J++ que utilizaban estas características no podían ejecutarse en el SDK de Java de Sun, pero el proyecto Kaffe desarrolló extensiones que permitieron ejecutar aplicaciones J++ con estas características en su JVM de código abierto . Sin embargo, estas extensiones (implementadas por TransVirtual con financiación de Microsoft) no se utilizaron ampliamente, y las aplicaciones J++ aún necesitaban compilarse en Visual J++ antes de poder ejecutarse en Kaffe. [ 6 ] [ 7 ]
Visual J++ admitía ActiveX . [ 8 ]
Ejemplo
Aquí hay algunos ejemplos de Visual J++. [ 9 ]
Uso de formularios de Windows :
paquete org.wikipedia.examples ;import com.ms.ui.ActionEvent ; import com.ms.ui.ActionListener ; import com.ms.ui.Button ; import com.ms.ui.Form ;public class SimpleForm { public static void main ( String [] args ) { Form form = new Form ( "Simple Form" ); Button button = new Button (); button . setText ( "Click Me" ); button . addActionListener ( new ActionListener () { public void actionPerformed ( ActionEvent e ) { form . setText ( "¡Botón pulsado!" ); } }); form . add ( button );formulario.mostrar ( ) ; } }Llamando a ActiveX :
paquete org.wikipedia.examples ;import com.ms.activeX.ActiveXComponent ; import com.ms.activeX.Variant ;public class Example { public static void main ( String [] args ) { try { ActiveXComponent ax = new ActiveXComponent ( "InternetExplorer.Application" ); ax . setProperty ( "Visible" , new Variant ( true )); ax . invoke ( "Navigate" , new Variant ( "http://www.microsoft.com" )); } catch ( Exception e ) { e . printStackTrace (); } } }Llamada a la API de Windows :
paquete org.wikipedia.examples ;import com.ms.win32.RegistryKey ; import com.ms.win32.User32 ;public class Example { public static void main ( String [] args ) { // Generar un cuadro de mensaje User32 user32 = new User32 (); user32 . MessageBox ( 0 , "¡Hola desde la API de Windows!" , "Visual J++" , 0 );// Leer una clave del registro RegistryKey key = new RegistryKey ( "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion" ); String productName = key . getStringValue ( "ProductName" ); System . out . printf ( "Nombre del producto: %s%n" , productName ); } }La WFC
Las Windows Foundation Classes (WFC) encapsularon la API de la plataforma Microsoft Win32 y los modelos de objetos DHTML en una biblioteca de clases unificada. WFC se diseñó principalmente para crear interfaces gráficas de usuario para aplicaciones Java en Windows.
El litigio de Sun contra Microsoft
Sun Microsystems había otorgado originalmente la licencia de Java a Microsoft , pero posteriormente inició un litigio contra Microsoft por infracción de marca registrada. La licencia de marca registrada de Sun para el uso de la marca Java exige que todas las implementaciones sean "compatibles".
Algunos observadores han señalado que esta incompatibilidad parece haber sido un objetivo deliberado de Microsoft, en un intento de al menos ralentizar el avance de la tecnología Java de Sun. [ 10 ] [ 11 ]
El hecho de que la MSJVM no superara las pruebas de conformidad de Sun fue un factor importante en la demanda inicial. En 2004, esta y todas las demás demandas pendientes entre Sun y Microsoft se resolvieron como parte de un amplio acuerdo entre Sun y Microsoft. [ 12 ] Según lo estipulado en el acuerdo, Microsoft no podía incorporar a J++ las características que Sun introdujo en Java en versiones posteriores a aquella de la que J++ se había replicado (en ese momento); se congelaría en el conjunto de características de la versión 1.1.4 de Java. Esto prácticamente acabó con J++ y puso fin a las actualizaciones posteriores. Microsoft también se vio obligada a aceptar cesar la distribución de la MSJVM; ya no está disponible para su descarga.
Sin embargo, los términos del acuerdo permitieron a Microsoft brindar soporte de seguridad, lo que posibilitó actualizaciones adicionales de la MSJVM para corregir vulnerabilidades y otros problemas relacionados con amenazas a la seguridad. Microsoft dejó de brindar dicho soporte para la MSJVM el 31 de diciembre de 2007. [ 13 ]
La tecnología J++ acabó siendo reciclada, sobreviviendo durante un tiempo como parte de la plataforma Microsoft .NET y del lenguaje de programación J# .
Entorno de desarrollo integrado (IDE) de Visual J++
Visual J++ también era el nombre del Entorno de Desarrollo Integrado (IDE) para J++ y proporcionaba muchas herramientas y utilidades para ayudar a los programadores de J++ a aprovechar al máximo la API de Win32 .
Visual J++ ya no está disponible para su distribución, pero formaba parte de la línea de productos Microsoft Visual Studio . Visual Studio 6.0 fue la última versión que incluyó J++.
Visual J#
Visual J# (pronunciado "Jay Sharp") es un lenguaje de Microsoft cuya sintaxis es similar a la de Java, y forma parte del .NET Framework . Visual J# es parte del conjunto de productos Microsoft Visual Studio .NET y está diseñado para ayudar a desarrolladores y programadores a migrar de J++ (o Java) al .NET Framework .
Más tarde, Microsoft desarrolló el lenguaje C# ("C Sharp") como lenguaje principal para la plataforma .NET, que en muchos sentidos estuvo influenciado por Java; posteriormente, el .NET Framework comparte muchas ideas con Java. Al igual que Java, C# se compila a un tipo de código de bytes (llamado CIL ) y se ejecuta sobre una máquina virtual llamada Common Language Runtime . .NET Visual Studio 2005 fue la última versión que incluyó J#.
Referencias
- ^ Rogers, Dan (1 de diciembre de 1996). "Visual J++ 1.0 de Microsoft" . Diario del Dr. Dobb .
- ↑ Emigh, Jacqueline (12 de septiembre de 2003). "Deberías dejar de usar J++ de Microsoft ahora" . InformIT . Archivado del original el 3 de julio de 2012. Consultado el 25 de enero de 2026 .
- ↑ "Anuncio de disponibilidad general de la compilación de Microsoft de OpenJDK" . Java en Microsoft . 25 de mayo de 2021. Consultado el 3 de agosto de 2021 .
- ↑ "JFC; Microsoft declara la guerra" . xent.com. 1997-08-01 . Consultado el 2007-07-14 .
- ↑ McMillan, Robert (1 de julio de 1997). "J/Direct de Microsoft, llamado la muerte de Java" . JavaWorld . Recuperado el 16 de julio de 2020 .
- ↑ "Transvirtual adopta las extensiones de Java de Microsoft" . linuxjournal.com. 10 de enero de 1999. Consultado el 1 de agosto de 2007 .
- ↑ "Se anuncia un clon de Java" . slashdot.org. 14 de junio de 1999. Consultado el 1 de agosto de 2007 .
- ↑ "Microsoft lanza Visual J++" . CNet . 1 de octubre de 1996. Consultado el 31 de octubre de 2011 .
- ↑ Microsoft Corporation (1998). Guía del programador de Microsoft Visual J++ 6.0 (1.ª ed.). Microsoft Press. ISBN 1572318694.
- ↑ Lohr, Steve (25 de mayo de 1998). "Otro adversario más para Microsoft" . New York Times . Consultado el 15 de marzo de 2009.
Un correo electrónico de septiembre de 1997, enviado por un funcionario de Microsoft identificado como P. Sridharan, dice: "Sigamos adelante y robemos el lenguaje Java. Dicho esto, ¿alguna vez hemos analizado cuánto tiempo le tomaría a Microsoft crear una versión multiplataforma de Java que funcionara? Naturalmente, nunca lo haríamos, pero nos daría una idea del tiempo que tenemos para acabar con Java de Sun".
- ↑ "Microsoft: Una historia de comportamiento anticompetitivo y daño al consumidor" (PDF) . Comité Europeo de Sistemas Interoperables . 31 de marzo de 2009. Consultado el 22 de abril de 2009. Deberíamos
simplemente aumentar discretamente la cuota de mercado de j++ y asumir que la gente aprovechará más nuestras clases sin darse cuenta de que están creando aplicaciones Java exclusivas para Win32.
- ↑ "Sun llega a un acuerdo con Microsoft y anuncia despidos" . www.news.com. 2 de abril de 2004. Consultado el 3 de octubre de 2007 .
- ↑ "Soporte para la máquina virtual Java de Microsoft" . Microsoft. 2 de marzo de 2007. Consultado el 9 de octubre de 2007 .
Enlaces externos
- Características del producto en Visual J++ – Por edición
- Microsoft Visual J#
- Sitio web de Microsoft Java
- Acuerdo de Sun con Microsoft
- Herramientas de desarrollo de Microsoft descontinuadas
- Microsoft Visual Studio