Java también es un lenguaje en evolución que tiene características de otros lenguajes.
Cuando se trata del diseño de nuevos lenguajes de programación o extensiones de lenguaje, otras construcciones de lenguajes de programación a menudo se prueban para determinar su idoneidad y luego se incorporan al concepto si tienen éxito. veamos como Java se compara con otros lenguajes de programación.
Sintácticamente, Java se basa fuertemente en C(++), por ejemplo, con los tipos de datos, operadores o paréntesis, pero no ha adoptado todas las propiedades de C(++). En la cadena histórica, a menudo se considera que Java es el sucesor de C++ (y el predecesor de C#), pero el lenguaje de programación Java evita deliberadamente construcciones problemáticas como los punteros.
El concepto de clase, y por lo tanto el enfoque OO, se inspiró significativamente en Simula y Smalltalk. Las interfaces que proporcionan un medio elegante de organización de clases se basan en Objective-C, donde se denominan protocolos. Mientras que Smalltalk administra todos los objetos dinámicamente y mientras que, en C++, el compilador combina todo en un gran fragmento binario, en Java, cada tipo es un archivo de clase separado. Todas las clases, opcionalmente también desde otra computadora a través de la red, son cargadas por la JVM en tiempo de ejecución. Incluso las llamadas a métodos son posibles a través de la red.
En resumen, Java adopta conceptos conocidos y probados, y el lenguaje ciertamente no es una revolución; Los lenguajes de secuencias de comandos modernos están más avanzados en este sentido y también adoptan conceptos de lenguajes de programación funcionales.
Debe usar el nombre «Java» con cuidado. No todo lo que tiene Java en su palabra raíz en realidad tiene que ver con Java: JavaScript no tiene mucho en común con Java, excepto por algunas similitudes en conceptos imperativos. El lenguaje de programación JavaScript fue desarrollado en 1995 por el desarrollador de Netscape Brendan Eich. En 1997, el Asociación Europea de Fabricantes de Ordenadores (ECMA) partes codificadas de JavaScript en el ECMA-262 estándar y nombró el lenguaje de programación ECMAScript. La versión actual es ECMAScript 2020. Los proveedores de navegadores populares Google (Chrome), Microsoft (Edge) y Mozilla Foundation (Firefox) implementan ECMAScript, pero generalmente agregan extensiones.
Java y JavaScript difieren en muchos aspectos, al igual que los ojos de cerradura y las pulsaciones de teclas tienen poco que ver entre sí. El uso de la clase es completamente diferente con su enfoque de prototipo en JavaScript que en Java, y JavaScript también se puede contar entre los lenguajes de programación funcionales, lo que realmente no es Java.
En los primeros días, Microsoft generó cierto revuelo en torno a Java. Con Visual J++Microsoft proporcionó su propio compilador de Java desde el principio (como parte del Kit de desarrollo de Microsoft) y su propio entorno de tiempo de ejecución rápido con el Máquina virtual Java de Microsoft (MSJVM). El único problema era que faltaban intencionalmente elementos como RMI y Java Native Interface (JNI): JNI se agregó en 1998. Contra todos los estándares, el compilador J ++ introdujo nuevas palabras clave como multidifusión y delegar. Microsoft también agregó algunos métodos y características nuevos, por ejemplo, J/Directo, para darle al lenguaje de programación independiente de la plataforma la marca Windows. Con J/Direct, los programadores podían acceder a las funciones de la API de Win32 directamente desde Java y, por lo tanto, programar programas puros de Windows en Java. Al integrar DirectX, el lenguaje de programación de Internet Java se hizo compatible con multimedia, lo que, por supuesto, generó el problema de que las aplicaciones creadas con J++ no necesariamente se ejecutaban en otras plataformas. Entonces, Sun demandó a Microsoft.
Dado que a Sun no le estaba yendo particularmente bien financieramente, Microsoft inyectó la friolera de $ 1.6 mil millones en la compañía en abril de 2004. Microsoft compró así el fin de los problemas antimonopolio y las disputas de patentes. En enero de 2004, Microsoft dejó de trabajar en J++ porque la energía fluía hacia el marco .NET y los lenguajes .NET. Al principio, una versión de Java, J#ejecutaba programas Java en el entorno de ejecución CLR de Microsoft .NET, pero a principios de 2007, J# también se suspendió.
Durante mucho tiempo, Microsoft se había retirado casi por completo del desarrollo de Java.
Sólo se persiguieron proyectos más bien pequeños como el Controlador Microsoft JDBC para SQL Server. Pero el soporte para Java ha vuelto a ser amplio: Microsoft se ha unido a la Grupo de trabajo de EA de Yakartaadmite aplicaciones Java en microsoft azure, un servicio de computación en la nube, y también proporciona un entorno de tiempo de ejecución basado en OpenJDK. Quizás Microsoft felicite a Oracle en algún momento, al igual que felicitó a Linux por su vigésimo cumpleaños.
Dado que C# apareció poco después de Java y después de una disputa entre Microsoft y Sun, y los lenguajes eran sintácticamente similares al principio, se podría suponer que Java fue el padrino del lenguaje de programación C#. Pero eso fue hace mucho tiempo. Mientras tanto, C# ha desarrollado un impulso tan fuerte que el lenguaje de programación de Microsoft es mucho más innovador que Java. C# se ha vuelto complejo a lo largo de los años, y Microsoft integra elementos en el lenguaje de programación sin mucho proceso de votación, mientras que, en el mundo de Java, millones de personas debaten y votan. A veces, puede tener la impresión de que Java finalmente puede hacer lo que ofrece C#. Desde este punto de vista, Java hoy se beneficia de la experiencia adquirida en el mundo C#. La adición de expresiones lambda a Java 8 también enfatizó explícitamente la adopción de la sintaxis de C#, a diferencia de la documentación de Microsoft, que niega cualquier similitud entre C# y Java.
Oracle divide Java en Plataforma Java, Edición estándar (Java SE) para programas “generales” y Yakarta EE. UU.—anteriormente Java Platform, Enterprise Edition (Java EE)— como una extensión para sistemas empresariales «grandes». Por el contrario, Microsoft pone todo en un solo marco llamado .NETO. Más grande que el marco de Java, .NET se puede usar para programar cualquier cosa que se le ocurra a Windows. Esta característica es particularmente notable en el área de GUI, donde Java, independiente de la plataforma, tiene menos que ofrecer.
La dirección actual es Núcleo de .NET, una alternativa de código abierto basada en el «gran» marco .NET, disponible para Windows, macOS y Linux x64. Todos los cambios en el código base se pueden revisar en https://github.com/dotnet/core. Debido a que las aplicaciones .NET existentes no se pueden migrar sin personalización, la adopción de .NET Core todavía no es como la de .NET.
Con un poco de cinismo, tenga en cuenta que Java quizás solo esté vivo porque Microsoft se ha centrado exclusivamente en Windows con .NET, pero el mundo quería algo más. Microsoft esperó demasiado con .NET Core porque no quería fortalecer otras plataformas.
Nota del editor: Esta publicación ha sido adaptada de una sección del Java: la guía completa por Christian Ullenboom.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073