Bienvenidos a otro capítulo de este Curso Gratis de Java para Hackers – Historia y Evolución de Java. Comparte este articulo y síguenos para recibir más capítulos, guías y cursos gratis. En el mundo de la tecnología en constante evolución, pocos lenguajes de programación han resistido la prueba del tiempo como Java. Desde sus humildes comienzos a principios de la década de 1990 hasta su estado actual como lenguaje fundamental en el panorama del desarrollo de software, la historia de Java es rica y ha dejado una marca indeleble en la era digital.

Índice

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Historia de java

Ya sea que sea un desarrollador experimentado, un aspirante a codificador o simplemente alguien curioso acerca de los fundamentos del mundo digital que lo rodea, comprender la historia y la evolución del lenguaje Java es una exploración cautivadora de la programación.

La historia de Java es muy interesante. Java fue diseñado originalmente para la televisión interactiva, pero era una tecnología demasiado avanzada para la industria de la televisión por cable digital en ese momento. La historia de Java comienza con el Equipo Verde. Los miembros del equipo Java (también conocido como Green Team) iniciaron este proyecto para desarrollar un lenguaje para dispositivos digitales como descodificadores, televisores, etc.

Sin embargo, era más adecuado para la programación de Internet. Posteriormente, la tecnología Java fue incorporada por Netscape.

Los principios para crear la programación Java fueron “Simple, Robusto, Portátil, Independiente de la Plataforma, Seguro, Alto Rendimiento, Multiproceso, Arquitectura Neutral, Orientado a Objetos, Interpretado y Dinámico”. Java fue desarrollado por James Gosling, conocido como el padre de Java, en 1995. James Gosling y los miembros de su equipo comenzaron el proyecto a principios de los años 90.

Actualmente, Java se utiliza en programación de Internet, dispositivos móviles, juegos, soluciones de comercio electrónico, etc. A continuación, se detallan puntos importantes que describen la historia de Java.

¿Cuándo se desarrolló Java?

Java se desarrolló durante varios años y sus orígenes se remontan a principios de la década de 1990. Aquí hay una cronología de la historia y el desarrollo de Java:

James Gosling y la historia detrás del nombre de Java

Es un licenciado en ciencias de la computación quién ya había pasado por varias empresas de renombre entre las que se encontraba IBM y participando en una gran cantidad de proyectos, como encargarse de escribir una versión propia de Emacs, que básicamente es un intérprete de un lenguaje derivado de Lisp (Emac Lisp), construyó una versión multi-procesador de Unix, así como varios compiladores y sistemas de correo electrónico.

En 1984 Gosling deja IBM para empezar a trabajar en Sun Microsystems como desarrollador de software. James Gosling, informático y programador, dirigió el equipo que trabajó en el diseño y desarrollo original de Java. Sus contribuciones al lenguaje fueron significativas y es ampliamente reconocido por su trabajo en Java. 

Sin embargo, es importante señalar que el éxito y la evolución de Java fueron el resultado de los esfuerzos combinados de muchas personas talentosas en Sun Microsystems y la comunidad Java en general.

Green Project (1990)

James Gosling lideraba un equipo denominado equipo ‘Verde’. El objetivo de este equipo era crear un nuevo proyecto que pueda. Inicialmente C++ fue la elección original para desarrollar el proyecto. James Gosling quería mejorar C++ para lograr el objetivo, pero debido al alto uso de memoria, esa idea fue rechazada y el equipo comenzó con un nuevo lenguaje inicialmente llamado GreenTalk. La extensión de archivo utilizada como .gt. Posteriormente este lenguaje pasó a denominarse Oak y finalmente a Java.

En 1990 Sun Microsystems inició un proyecto de investigación que llamo Green Project, en el que estaba James Gosling, y que estaba conformado por un grupo de personas que estaban fascinadas por el hecho de que sucedían cosas con las computadoras fuera de la industria informática habitual. Las industrias estaban poniendo microprocesadores en teléfonos, ascensores, locomotoras, sistemas de luces, etc. y que a este grupo de personas les parecía fascinante, lo cual los llevo a la investigación en este campo.

Algo curioso es que literalmente llamaron al proyecto Green Project porque habían alquilado un espacio en Sand Hill Road, en donde la puerta del vestíbulo del ascensor era verde, algo no muy creativo, según Gosling, pero típico de ellos. Green Project estaba conformado por un grupo de 13 personas en el cual Sun Microsystem invirtió mucho dinero y se les dio un montón de autonomía para salir a investigar para poder crear productos para la próxima ola tecnológica.

Concepción (1991)

Las ideas iniciales de lo que se convertiría en Java comenzaron en Sun Microsystems en 1991. James Gosling, Mike Sheridan y Patrick Naughton iniciaron el proyecto para crear un lenguaje de programación para electrónica de consumo, inicialmente llamado “Oak” pero fue renombrado Java en 1995.

 La motivación de los creadores fuera necesidad de contar con un lenguaje independiente de la plataforma, que pudiera ser utilizado para crear software ejecutable y que se integrara a varios dispositivos electrónicos de consumo, como lavadoras, heladeras, televisores y demás.

Como muchos de estos aparatos utilizan diferentes tipos de CPUs como controladores, el problema era que la mayoría de los lenguajes de computación están diseñados para ser compilados para un objetivo específico. En C++, aunque es posible compilar un programa C++ para casi cualquier tipo de CPU, lo que requiere un compilador C ++ completo específicamente escrito para esa CPU. El problema es que los compiladores son costosos y requieren mucho tiempo para crearse.

En un intento de encontrar una solución mejor, Gosling y otros trabajaron en un lenguaje portátil, una multiplataforma que podría producir código, que se ejecutaría en una variedad de CPUs en diferentes entornos. Este esfuerzo finalmente llevó a la creación de Java.  Con estos cambios, se llegó a una nueva forma de programar: Java. Java es el idioma preeminente de Internet, pero es más que eso. Revolucionó la programación, cambiando el modo en que pensamos tanto la forma como la función de un programa.

¿Qué tiene que ver JAVA en esto?

Lo más difícil de aprender de un lenguaje de programación es el hecho de que ningún elemento existe de forma aislada, sino que los componentes del lenguaje trabajan en conjunto con otros. Esta interrelación es especialmente acentuada en Java. es difícil discutir un aspecto de Java sin involucrar a otras caracteríscas del lenguaje. La innovación en los lenguajes de programación es impulsada por dos factores: las mejoras en el arte de la programación y los cambios en el entorno informático.

Trabajaron mucho tiempo en un plan de negocios que involucraba una colección de escenarios e ideas. Y para conformar este plan de negocios hicieron viajes por todo el mundo visitando muchas compañías que estaban fuera de la industria informática pero que usaban piezas de computadoras.  Fueron a compañías como MitsubishiMatsushita que luego paso a ser PanasonicToshiba Sony en Japón. También fueron a Samsung en Corea.

Recorrieron todo Europa tratando de entender como funcionaban estas industrias, y ese monton de ideas recopiladas en estos viajes se convirtieron en el plan de negocios para Green Project.

En realidad el Green Team nunca se enfocó en crear un lenguaje de programación. Para el desarrollo sus ideas estaban utlizando C++ principalmente, pero quedó claro que el mismo no estaba a la altura de las demandas que tenían que ver con la parte de redes seguridad del proyecto del equipo de Sun. Así fue como James Gosling se ofreció voluntariamente como la única persona en el grupo que había creado un compilador antes para hacer que C fuera seguro para ese entorno.

La industria de la electrónica de consumo

Pero luego, con el paso del tiempo, una cosa cambió, y otra cosa cambió y otra más también cambió, por lo que ya no se parecía tanto a C++ como había imaginado, tomo como una especie de vida propia. Este lenguaje que estaba naciendo surgió de C y C++ pero hubo mucha influencia de lenguajes como Simula, Pascal y Mesa e incluso se pueden ver influencias de lenguajes como Lisp Smalltalk. Así que en realidad el lenguaje incluye muchas partes de muchos otros lenguajes.

El lenguaje, fue diseñado desde sus orígenes para ser independiente de la plataforma, y en realidad, esto vino originalmente de las compañías de electrónica de consumo. Los dispositivos que fabricaban estas compañías tenían pantallas LCD, resistencias, condensadores, placas, cables y conectores, y todas esas cosas son elementos que se pueden comprar a cualquier proveedor, lo cual suponía una gran ventaja, ya que si tenían problemas con algún proveedor, simplemente podían cambiar a otro.

Pero con los procesadores sucedía algo diferente, y era el hecho de que si se compraba un chip, y en algún momento se quería cambiar por otro, debían volver a programar todo el sistema nuevamente adaptado a la arquitectura de este nuevo chip. Por lo tanto el proveedor de chips los tenían con la soga al cuello, ya que cambiar de chip supondría algo muy costoso, lo cual era completamente inaceptable.

La idea que origina a Java

Entonces la pregunta que hicieron los integrantes del Green Project fue ¿Qué necesitarían para hacer que puedan pasar de un proveedor de chips a otro fácilmente? Y la respuesta es: un lenguaje que genere código que corra en múltiples plataformas. Problema que James ya había pensado y con el cual había experimentado años antes en la Universidad. Esa solución sirvió no solo para solventar el problema de los proveedores sino también al proceso evolutivo de la tecnología.

Y eso se debe en que luego de fabricar un chip, se pondrían a investigar y a implementar mejoras para una siguiente versión del chip que seguramente sería implementada en la próxima videograbadora o en el próximo televisor, y al igual que el caso anterior terminarían teniendo que reescribir grandes cantidades de código porque las arquitecturas del procesador acabaría de evolucionar, y el hecho de poder tomar un software y ejecutarlo en máquinas para las cuales todavía no había sido escrito ese software funcionó muy bien, tanto que es una de las características más importantes de Java de hoy en día.

*7 (Star Seven)

Para ahondar en los detalles de alguna de estas ideas, decidieron que deberían construir un prototipo,  que no lo construirían con un fin de convertirse en producto, sino como vehículo para explorar esas ideas. Y ese prototipo fue el llamado *7 (Star 7). Ya que el Star 7 no era un producto, no realizaron ningún tipo de ingeniería extensa para crear piezas sofisticadas lo que hizo que el resultado fuera un dispositivo poco elegante y bastante extraño.

Para la creación del mismo implementaron lo que ellos llaman la “Ingeniería de martillos”, la cual se basa en comprar dispositivos electrónicos como por ejemplo un televisor, destruirlo sacarle la pantalla LCD y utilizarla. Compraron todo tipo de equipos de electrónica de consumo extraños, los destruyeron y les quitaron las partes. Por algún motivo los ingenieros eléctricos se enamoraron de los conectores del Sony Walkman y así fue como compraron montones de Walkmans de Sony para sacarle los conectores.

Y aunque en realidad habían estudiado la compra de conectores, resultó que era más barato comprar el Walkman completo y desarmarlo que comprar el conector solo. Se dedicaron mucho a hacer esto. Había radios que salían de equipos militares, había baterías que estaban listas para usar, habían tarjetas PCMCIA, habían tableros flexibles utilizados por ser una tecnología experimental extraña en ese momento, habían transmisores infrarrojos, etc.

El Star 7 era una especie de Frankenstein envuelto en una pieza de aluminio. Vagamente era una máquina portátil y si hubieran convertido ese prototipo en un producto, sería como un Ipad. De hecho, un par de personas del equipo luego trabajaron en el Ipad.

¿Qué se suponía que era el Star 7?

El Star 7 era un sistema de control de forma remota de los aparatos electrónicos y el entorno de un hogar, así como la comunicación interna entre los mismos. Uno de los problemas que estaban tratando de resolver era el hecho de que tanto el televisor como al videocasetera tenían controles remotos separados y eso les parecía una locura.

Y actualmente a James Gosling le sigue pareciendo una locura, ya que hace énfasis en la falta de progreso en ello, y cuenta en una entrevista que todavía tiene un montón de controles remotos en una mesa auxiliar de su casa. Este dispositivo presentaba una interfaz basada en la representación básica de la casa de forma animada y el control se llevaba a cabo mediante una pantalla táctil. En el sistema aparecía Duke, la actual mascota de Java.

Así que en el desarrollo del prototipo tuvieron muchas reuniones con equipos de ingeniería de compañías de electrónica de consumo y también con el lado comercial de sus productos, a fin de entender que problemas tenían y así aprender de ellos y ayudarlos a que ellos también aprendan de este gran equipo.

First Person INC.

El proyecto finalizó en septiembre de 1992 y fue completamente de investigación. Pero ahora la pregunta era si se podía hacer algo con eso para convertirlo en un negocio. Tras una demostración exitosa el grupo recibió el visto bueno para formar su propia compañía, lo que se conoce como subsidiaria, dentro de Sun Microsystems, llamada First Person Inc.

Es entonces cuando recibieron una oferta de Time-Warner, que era la segunda compañía de cable más grande de los Estados Unidos, para hacer un sistema operativo para decodificadores, algo que llamaron Full-Service Network, y que era perfecto ya que las cosas que querían eran exactamente cosas que ya habían construido y en las que creían firmemente.

En el tiempo que pasaron trabajando con esta compañía inmensa a la cual más tarde se le sumarían otras de igual tamaño de cable y telefonía, aprendieron a como funcionan en cuanto a sus políticas y llegaron a comprender sus conflictos internos y su modelo de negocio, y entendieron que en realidad el negocio de estas compañías no estaba en venderle el servicio de televisión por cable a las personas, sino era venderle espectadores a sus anunciantes, y ahí es donde entraba realmente el dinero.

Es en ese punto donde los integrantes del proyecto Green pensaron que esa visión era antiética e iba en contra del modelo libre y abierto donde cualquiera pueda contribuir con contenido, así que finalmente decidieron que lo correcto era simplemente renunciar a las compañías de cable y las compañías telefónicas. Finalmente en primavera de 1994, First Person Inc. Termina desintegrándose.

Primer lanzamiento de Oak (1992)

El lenguaje Oak se introdujo por primera vez en 1992 como parte del Proyecto Verde de Sun Microsystems. Fue diseñado para sistemas integrados. James Gosling usó este nombre porque Oak representa solidaridad y Oak tree es el árbol nacional de varios países como EE. UU., Francia, Rumania, etc.

En este punto, James decidió nombrar a su lenguaje “Oak” que traducido al español significa roble, y según el mismo es otra de esas cosas flojas que ya habían hecho al nombrar el grupo como Green Project.  Gosling cuenta que estaba sentado en su escritorio mirando hacia la ventana, donde había un roble.

Literalmente estaba escribiendo “MkDir” (Orden que sirve para crear una carpeta en sistemas operativos como Unix, DOS, Windows, y OS/2 de IBM), y necesitaba un nombre para comenzar a poner cosas en el directorio; No lo dudo mucho y viendo el roble a través de la ventana, le puso el nombre “Oak”. Pero Oak Technologies ya tenía Oak como marca registrada y el equipo de James tuvo que pensar en otro título para el idioma.

En este proceso el equipo pudo prestar atención a como Internet atravesaba una lenta transformación de los laboratorios de investigación y universidades a algo mucho más amplio. Se centraron ahora en la idea de involucrar el lenguaje que había creado James en la industria. Para ese entonces le cambiaron el nombre a Java, porque Oak era una marca ya registrada, y no querían verse involucrados en ninguna demanda.

Java y la world wide web (1993)

Java no es una excepción. Basándose en el rico legado heredado de C y C ++, Java añade refinamientos y características que reflejan el estado actual de la técnica en la programación. Simultáneamente a la elaboración de los detalles de Java, surgió un segundo factor, más importante, que jugaría un papel crucial en el futuro de este programa. Esta segunda fuerza fue, la world wide web. con la aparición de la web, Java fue impulsado a la vanguardia del diseño de lenguaje de computadora, porque la web también exigió programas portátiles.

Sin embargo, con el advenimiento de Internet y la web, el viejo problema de la portabilidad volvió a ponerse vigente, dado que Internet consiste en un universo diverso y distribuido, poblado con muchos tipos de computadoras, sistemas operativos y CPUs. Con lo anterior, la portabilidad, que antes era un problema irritante pero de baja prioridad, se convirtió en una necesidad de alto perfil.

En 1993,se volvió obvio para los miembros del equipo de diseño de Java que los problemas de portabilidad que se encuentran frecuentemente al crear código para controladores incrustados también se encuentran al intentar crear código para Internet. Esto provocó que el foco de Java pasara de atender a la electrónica de dispositivos, a la programación de Internet.

Características del lenguaje Java

Así, buscando inicialmente un lenguaje de programación para múltiples dispositivos, el hecho de que Java se adaptara perfectamente a Internet, fue el factor determinante para el éxito a gran escala de este lenguaje. Java se ha convertido en un valor impagable para los desarrolladores, ya que les permite:

  • Escribir software en una plataforma y ejecutarla virtualmente en otra
  • Crear programas que se puedan ejecutar en un explorador y acceder a servicios Web disponibles
  • Desarrollar aplicaciones de servidor para foros en línea, almacenes, encuestas, procesamiento de formularios HTML y mucho más
  • Combinar aplicaciones o servicios que utilizan el lenguaje Java para crear aplicaciones o servicios con un gran nivel de personalización
  • Escribir aplicaciones potentes y eficaces para teléfonos móviles, procesadores remotos, microcontroladores, módulos inalámbricos, sensores, gateways, productos de consumo y prácticamente cualquier otro dispositivo electrónico

El renacer del Fénix

Giran muchas teorías locas de porqué el lenguaje se llama Java, pero la realidad es que organizaron lo que se conoce como brainstorming o tormenta de ideas, la cual fue definida por Gosling como una sesión de gritos y gritos, en donde la gente solo gritaba palabras al azar y una persona se encargaba de ordenarlas y escribirlas en una pizarra. Luego tomaron esa lista de palabras se las enviaron a sus abogados de marcas y les dijeron que por favor vayan de arriba abajo y  elijan la primera que pase la prueba.

Finalmente, la palabra número 4 de la lista fue elegida: JAVA. Como dato curioso la primera palabra de la lista era Silk que significa seda y supongo que deben haber elegido ese nombre por la red de una telaraña. Y la tercera palabra en la lista, y la preferida de James era Lyric. Entonces los integrantes del grupo tuvieron una epifanía de que era mucho más probable que Internet se transformara en algo masivo y funcionaría con los consumidores.

Por tanto pensaron en la posibilidad de posicionar a Java como una herramienta para crear aplicaciones para Internet, ya que como dice Gosling en el sitio web Java de Sun:  “En general todo lo que habíamos querido hacer, encajaba perfectamente con la forma en que las aplicaciones fueron escritas, entregadas y utilizadas por interrnet”.

Finalmente, Java (1994) 

El equipo puso varios nombres como DNA, Silk, Ruby y Java. Java fue finalizado por el equipo. James Gosling presentó el título de Java según el tipo de grano de café expreso. Java es una isla en Indonesia donde se descubrió un nuevo café denominado café de Java. Según James Gosling, Java estaba entre las mejores opciones junto con Silk. Finalmente se seleccionó Java porque era bastante único y representaba la esencia de ser dinámico, revolucionario y divertido.

En 1994, como parte de un concurso de cambio de nombre, el lenguaje pasó a llamarse “Java” debido a problemas de marca registrada con el nombre “Oak”. El nombre fue elegido para reflejar la cultura del café en Sun Microsystems.

Se eligió el nombre “Java” como nuevo apodo. Se inspiró en la cultura del café en Sun Microsystems, donde “Java” se refiere al café de Indonesia, que uno de los miembros del equipo había visitado.

Primer lanzamiento público (1995)

Sun lanzó la primera implementación pública como Java 1.0 el 23 de mayo de 1995. Prometía escribir una vez, ejecutar en cualquier lugar (WORA), proporcionando tiempos de ejecución sin costo en plataformas populares. El 13 de noviembre de 2006, Sun lanzó gran parte de Java como software gratuito y de código abierto bajo los términos de la Licencia Pública General GNU (GPL).

Es en ese momento donde comenzaron a trabajar en un navegador web llamado inicialmente Web Runner y renombrado luego como HotJava, y lo principal que estaban tratando de hacer con este navegador era que tenga la capacidad para mostrar contenido interactivo.

En 1994 un navegador era texto, y con suerte algunas imágenes. No tenía la capacidad para ningún tipo de interactividad. Era el momento adecuado. Desarrolladores incipientes y hambrientos de aplicaciones de Internet hicieron correr la noticia, e hicieron todo tipo de aplicaciones extrañas con el lenguaje. Los applets de Java crearon un revuelo porque llegaron en el momento en que el HTML se estaba volviendo muy utilizado y la gente comenzó a encontrar limitaciones.

Java en los navegadores Web

Estos hicieron que las páginas web cobren vida. Así que a fines de 1994 o principios de 1995 una persona llamada John Cage, según James uno de los mejores oradores públicos que conoce, llego un día a la oficina de Gosling pidiéndole material ya que tenía la idea de ir a una charla Ted y dar una demostración de lo que podía hacer HotJava. James en un ataque de desesperación, ya que por el momento nada funcionaba bien y comenzó a recibir señales de desastre, decidió acompañarlo. 

Así fue como se dirigen a Monterrey y van hacia el centro de conferencias. James cuenta que estuvo toda la noche tratando de hacer funcionar el navegador, pero finalmente cuando llego el momento de mostrarlo funcionó a la perfección.

Uno de los applets que había escrito era uno que mostraba un modelo 3D de una molécula, y cuando llegaron a esa parte en la demostración, teniendo en cuenta que la gente estaba acostumbrada a ver páginas webs que solo contenían texto e imágenes, James tomo el mouse lo movió hacia la molécula, lo arrastró y la molécula rotó, y esa fue la primera vez que cualquiera de estas personas había visto un objeto dinámico interactivo en una página web.

Los Whoaaaa que ocurrieron en la audiencia fueron realmente asombrosos, y luego, es como si todos estuvieran prestando atención.  Según James, Era como una de estas escenas en “Harry Potter“, donde las pinturas en la pared cobran vida. Era ese tipo de whoa.

El acuerdo con Netscape

Java y HotJava se anunciaron formalmente en mayo en sun world ’95. Los programadores se volvieron locos, empantanando los servidores de Sun con miles de descargas. Finalmente Java fué ampliamente aceptado por los peces gordos en el mundo web, como Netscape Communications Corp. y, más tarde, por Microsoft.

Luego hicieron un acuerdo con Netscape, que fue realmente importante para que esto se integrara en los navegadores y se extendiera por todo el mundo porque eran la compañía con un dominio abrumador del mercado en los navegadores web. Fue un período para tratar de hacer que estas bases de código encajen todas juntas. Pero al final funcionó razonablemente bien.

Java rápidamente llamó la atención debido a su capacidad para ejecutar “applets” en navegadores web. Estos subprogramas trajeron interactividad y contenido dinámico a la Web inicial, lo que provocó la “revolución de los subprogramas”. La independencia de la plataforma de Java y su capacidad de “escribir una vez y ejecutar en cualquier lugar” lo convirtieron en una opción popular para el desarrollo web.

La integración en diferentes plataformas

La integración de Java en diferentes plataformas y sistemas no fue nada sencillo, particularmente en los años noventa. Si bien Java es un lenguaje que pone énfasis en la seguridad de las aplicaciones, el conjunto de errores que tenían con la integración en Internet Explorer en Windows 95 fueron muchísimos, y tratar de hacer que todo lo que fuera confiable y seguro fue realmente difícil haciendo que la gente pudiera encontrar muchos huecos de seguridad que esencialmente eran errores en la integración.

Hubo todo tipo de ataques basados ​​en errores en la integración de Windows. Finalmente podemos decir que ese tipo de problemas con el correr de los años se solvento y se logró en Java un lenguaje simple, robusto, fácil de implementar, fácil de extender, multiplataforma, que incluye todas las opciones de documentación y estándares de calidad y por supuesto que sea seguro.

Todo esto hizo que fuera el lenguaje que haya impulsado el mundo de las aplicaciones webs, que se hayan escrito muchos programas de escritorio con él, se utilice en servidores y se generen cantidades inmensas de aplicaciones para los celulares.

Java 2 y Enterprise Java (finales de la década de 1990)

Java 2 (J2SE) se introdujo en diciembre de 1998, aportando mejoras significativas y el kit de herramientas Swing GUI.

La versatilidad de Java llevó a su adopción en el desarrollo de software empresarial. Enterprise Edition (Java EE) se introdujo para abordar las necesidades de aplicaciones a gran escala.

La caída de Sun 

Sin embargo, a pesar del éxito de Java, Sun fue sumando fracasos a lo largo de unos años, y esto hizo que en 2009 tenga que vender la empresa. Es Oracle quien entra en escena tras adquirir la compañía por 7.400 millones de dólares. Poco tiempo después James Gosling renunciaría. Al trabajar en Sun siendo ejecutivo de la compañía, tenía un plus económico que dependía de la performance de la compañía. 

Oracle le ofreció el mismo salario básico, pero sin el plus. Ahora, según Gosling, no se trató de una cuestión meramente monetaria, sino de una falta de respeto, en el contexto que estamos mencionando consideró que,  lo estaban menospreciando. Prácticamente lo bajaron de posición, ya que en Oracle no había puesto similar al que ostentaba en Sun y no le ofrecieron participar de la gerencia ni de un cargo similar.

El principal detonante, de todos modos, fue una disminución en el control sobre las tecnologías. Gosling dijo que su trabajo parecía ser subir al escenario y ser una especie de figura pública de Java.

Batallas legales (finales de los 90 a principios de los 2000):

Sun Microsystems participó en disputas legales con Microsoft sobre el uso de Java por parte de Microsoft en sus productos. Estas batallas legales tuvieron un impacto significativo en el desarrollo y distribución de Java.

Oracle vs Google

Es de público conocimiento que Oracle tuvo problemas legales con Google. Y esto no es algo nuevo, sino que los problemas ya existían antes de que la empresa adquiriera a Sun Mirosystems. Sun acusó a Google de copiar gran parte de código de Java para crear Android, mientras Google alegaba que no copiaron el código de Java sino que solamente copiaron las APIS. Antes de todo eso Google tuvo intensas negociaciones con Sun para tener licencias para java y utilizarlo en Android.

Básicamente Google quería el código gratis, mientras que Sun tenía que pagar los sueldos de todos sus ingenieros, y según cuenta Gosling, le habían ofrecido un precio que en retrospectiva era muy bajo. Al final, Google terminó gastando mas dinero en abogados que si hubieran aceptado el precio ofrecido. En ese entonces decidieron no demandarlos porque iba a terminar y en realidad finalmente termino en un pleito legal importante. Luego que Oracle adquirió la compañía decidió tomar cartas en el asunto y Oracle es Oracle.

Es una organización que está impulsada por la aritmética y por el balance al final del mes. Oracle creía que podrían recuperar algunos de los gastos de la adquisición de Sun en esta demanda.

Abastecimiento abierto (2006):

En noviembre de 2006, Sun Microsystems publicó el código fuente de la plataforma Java bajo la Licencia Pública General GNU (GPL). Esta versión de código abierto de Java se conocía como OpenJDK (Java Development Kit).

El 8 de mayo de 2007, Sun finalizó el proceso, haciendo que todo el código central de Java fuera gratuito y de código abierto, excepto una pequeña porción del código de la cual Sun no tenía los derechos de autor. Con el avance de Java y su amplia popularidad, se crearon múltiples configuraciones para adaptarse a varios tipos de plataformas. Por ejemplo: J2EE para aplicaciones empresariales, J2ME para aplicaciones móviles.

Evolución continua (década de 2000 hasta la actualidad)

Java continuó evolucionando con lanzamientos regulares, introduciendo nuevas funciones y API. Las versiones notables incluyen Java 5 (que presenta genéricos), Java 8 (con lambdas y Stream API) y Java 11 (una versión de soporte a largo plazo).

Java también jugó un papel fundamental en el desarrollo de Android, impulsando una gran parte de los dispositivos móviles del mundo.

Adquisición de Java por parte de Oracle (2010)

En 2010, Oracle Corporation adquirió Sun Microsystems, convirtiéndose en el administrador de Java. Esta adquisición generó dudas sobre el futuro del desarrollo y las licencias de Java.

Desarrollo continuo y participación comunitaria

El desarrollo de Java ha continuado con una comunidad activa y actualizaciones periódicas.

Proyectos como Project Valhalla (tipos de valores) y Project Loom (concurrencia simplificada) tienen como objetivo mejorar las capacidades y el rendimiento de Java.

¿Gosling en Google?

Curiosamente Gosling fue contratado por Google en 2011, que fue justamente poco antes de que Oracle demande a Google. Si bien en ese momento dijo que no sabía muy bien en qué trabajaría dentro de la compañía buscadora, y que haría “de todo un poco”, las suposiciones apuntaban a que estaría involucrado en Android – considerando los problemas legales que tiene con Java.

La contratación de Gosling por parte de Google fue vista por los expertos como una estrategia que daría más fuerza al gigante de las búsquedas en la contienda que sostiene con Oracle sobre el tema de patentes de Java.

Liquid Robotics

Gosling trabajo solo 6 meses en Google y luego renunciaría para enfocarse en un proyecto que según dice lo ha seducido completamente. Se trata de la compañía que se llama Liquid Robotics y su CEO es un íntimo amigo de Gosling desde que trabajaran juntos para Sun Microsystems en el desarrollo de la plataforma Java.

Gosling afirmo que la decisión de dejar Google no ha sido nada fácil, que allí hay un gran equipo de gente haciendo cosas interesantes, pero que Liquid Robotics estaría desarrollando proyectos científicos muy positivos para el mundo, lo que le parecía increíblemente genial. La contratación de Gosling llega en un momento en el que Liquid Robotics estaba aumentando considerablemente su cartera de clientes, además de obtener importantes cifras por parte de inversores.

Esta compañía está especializada en el desarrollo de vehículos marinos no tripulados capaces de recabar una gran cantidad de datos de los océanos. Toda esta información recopilada se transfiere vía satélite a una gran base de datos en la nube, y es aquí donde James Gosling lideraba un equipo de desarrollo de software. 

Liquid Robotics menciona que “sus vehículos cambiarán la forma en la que conocemos los vastos océanos ya que son capaces de proporcionar grandes volúmenes de información, pero para ello necesitarían una arquitectura de software a la altura y James Gosling es la persona indicada para conseguirlo”. Los robots denominados “Wave Glider” de Liquid Robotics son pequeñas embarcaciones que recolectan datos de sensores.

Las unidades tienen una eslora de aproximadamente dos metros y pueden comunicarse con sus bases mediante satélites y redes de telefonía móvil. Los robots aprovechan la luz del sol y la energía undimotriz. El producto está dirigido a las investigaciones comerciales y la industria de la defensa, según informa la propia empresa.

Amazon

A fines de 2016 Liquid Robotics fue adquirida por Boeing y tras la adquisición, Gosling dejo la empresa para trabajar en Amazon. Más concretamente ha comenzado a trabajar para Amazon Web Services, el negocio de cloud computing del gigante de Seattle al que se incorpora en calidad de “ingeniero distinguido”. Así se puede leer en el perfil del Facebook del propio Gosling, donde ha dejado el siguiente mensaje: “Es tiempo de cambio. Me voy de Boeing Defense (originalmente Liquid Robotics) con muy buenos recuerdos.

Hoy comienzo una nueva aventura en Amazon Web Services”. Particularmente, James está involucrado en un proyecto relacionado con Java llamado Amazon Corretto, ya que es una tecnología presente en cientos de servicios que utiliza Amazon. Ellos utilizan hace tiempo una implementación propia del OpenJDK, que es una distribución popular de Java utilizada para crear aplicaciones ricas y compatible con java SE que es el estándar para aplicaciones webs desde el 2006.

El concepto de Amazon Corretto nació de una necesidad interna en Amazon. La compañía gestiona miles de aplicaciones, tanto internas como externas para los clientes, y tuvieron que crear una distribución confiable para uso de sus propios desarrolladores.

Lanzada al público en 2016, la distribución está dirigida a empresas con objetivos similares: crear aplicaciones Java que puedan escalar y funcionar de manera confiable, usar las últimas funciones de seguridad y puedan corregirse de manera uniforme en un entorno conocido y común distribución utilizada.

Java hoy

Java sigue siendo un lenguaje fundamental en el desarrollo de software, con un uso generalizado en aplicaciones web, desarrollo de aplicaciones móviles (Android), procesamiento de big data, computación en la nube y más.

Conclusión

Podemos decir que con Java se ha proporcionado un lenguaje independiente de la plataforma y un entorno de ejecución ligero y gratuito. Es conocido por todos el éxito de este lenguaje, no sólo en páginas web: sino también en videojuegos, aplicaciones de escritorio y dispositivos móviles. Java es uno de los lenguajes de programación más extendidos del mundo; más de 7 millones de desarrolladores trabajan con Java y más de 5.000 millones de dispositivos funcionan (en parte) gracias a Java.

Es muy interesante saber que todo esto es gracias a 13 personas que quisieron desarrollar una tecnología que en principio nada tuvo que ver con Java y que sin embargo fue fundamental para el nacimiento del lenguaje.

Durante el período de casi 30 años, Java ha visto muchas versiones menores y mayores. A continuación se muestra una breve explicación de las versiones de Java hasta la fecha.

Versiones de Java

A lo largo de los años, se han lanzado varias versiones de Java. Echemos un vistazo a la historia y evolución de Java a través de la siguiente tabla. 

VersiónFechaDescripción
1JDK Beta1995Versión borrador inicial
2JDK 1.023 de enero de 1996Una variante estable JDK 1.0.2 se denominó JDK 1
3JDK 1.119 de febrero de 1997En esta versión se agregaron funciones importantes como JavaBeans , RMI , JDBC y clases internas .
4JDK 1.28 de diciembre de 1998Swing , el compilador JIT, los módulos Java y las colecciones se introdujeron en JAVA y esta versión fue un gran éxito.
5JDK 1.38 de mayo de 2000Se agregaron HotSpot JVM , JNDI, JPDA, JavaSound y soporte para clases de proxy sintético.
6JDK 1.46 de febrero de 2002Se agregó API de E/S de imagen para crear/leer imágenes JPEG/PNG. El analizador XML integrado y el procesador XSLT (JAXP) y la API de Preferencias fueron otras actualizaciones importantes.
7JDK 1.5 o J2SE 530 de septiembre de 2004Se agregaron varias características nuevas al lenguaje como foreach, var-args, generics, etc.
8JAVASE611 de diciembre de 20061. La notación se eliminó a SE y se realizaron actualizaciones a JAXB 2.0, compatibilidad con JSR 269 y compatibilidad con JDBC 4.0.
9JAVASE77 de julio de 2011Se agregó soporte para lenguajes dinámicos a JVM. Otras mejoras incluyeron cadenas en la caja del interruptor, punteros comprimidos de 64 bits, etc.
10JAVASE 818 de marzo de 2014Se agregó soporte para programación funcional. Expresiones lambda, flujos, métodos predeterminados, nuevas API de fecha y hora introducidas.
11JAVA SE 921 de septiembre de 2017Se introdujo un sistema de módulos que se puede aplicar a la plataforma JVM.
12JAVASE1020 de marzo de 2018Se agregaron extensiones de etiquetas de idioma Unicode. Se introdujeron certificados raíz, apretones de manos locales de subprocesos, soporte para asignación de montón en dispositivos de memoria alternativos, etc.
13JAVASE115 de septiembre de 2018Constantes dinámicas de archivos de clase, Epsilon, un recolector de basura no operativo, soporte de variables locales en parámetros lambda, soporte agregado de perfiles de montón de bajo costo.
14JAVASE1219 de marzo de 2019Recolector de basura experimental, Shenandoah: se agregó un recolector de basura con tiempo de pausa bajo, Microbenchmark Suite y API JVM Constants.
15JAVA SE 1317 de septiembre de 2019Característica agregada: bloques de texto (cadenas multilínea), apretones de manos locales de subprocesos mejorados.
16JAVASE1417 de marzo de 2020Característica agregada: registros, un nuevo tipo de clase para modelado, coincidencia de patrones, por ejemplo, manejo intuitivo de excepciones de puntero nulo.
17JAVASE1515 de septiembre de 2020Característica agregada: clases selladas, clases ocultas, función externa y API de memoria (incubadora).
18JAVA SE 1616 de marzo de 2021Característica agregada como vista previa: registros, coincidencia de patrones para conmutador, canal de socket de dominio Unix (incubadora), etc.
19JAVA SE 1714 de septiembre de 2021Característica agregada como finalizada: clases selladas, coincidencia de patrones, por ejemplo, encapsulación sólida de elementos internos de JDK de forma predeterminada. Nueva canalización de renderizado de macOS, etc.
20JAVA SE 1822 de marzo de 2022Característica agregada: UTF-8 de forma predeterminada, fragmentos de código en la documentación de la API de Java, API de vectores (tercera incubadora), función externa, API de memoria (segunda incubadora), etc.
21JAVA SE 1920 de septiembre de 2022Característica agregada: patrón de registro, API vectorial (cuarta incubadora), simultaneidad estructurada (incubadora), etc.
22JAVASE2021 de marzo de 2023Característica agregada: valores de alcance (incubadora), patrones de registro (segunda vista previa), coincidencia de patrones para conmutador (cuarta vista previa), función externa y API de memoria (segunda vista previa), etc.
22JAVA SE 2119 de septiembre de 2023Característica agregada: plantillas de cadenas (vista previa), colecciones secuenciadas, ZGC generacional, patrones de registro, coincidencia de patrones para conmutadores, etc.

Desde el lanzamiento de Java SE 8, la corporación Oracle sigue un patrón en el que cada versión par se lanza en el mes de marzo y una versión impar se lanza en el mes de septiembre.


Tenga en cuenta que el control de versiones de Java ha evolucionado con el tiempo. Los términos “J2SE” y “J2EE” (plataforma Java 2, edición estándar y edición empresarial) se utilizaron al principio, pero han sido reemplazados por números de versión más simples como “Java 5”, “Java 6”, etc. en. 

La última versión de Java es Java 21, lanzada el 19 de septiembre de 2023. La próxima versión de Java se lanzará en marzo de 2024. veamos ahora algunas preguntas frecuentes sobre la historia y la evolución de Java

Preguntas frecuentes relacionadas con los usos y aplicaciones de Java

Veamos una serie de preguntas frecuentes para disipar dudas y complementar este capítulo del curso de Java.

¿Qué significa “Java”?

El nombre “Java” se inspiró en la cultura del café en Sun Microsystems, y “Java” se refiere al café de Indonesia. Fue elegido como nombre de reemplazo para el idioma cuando el nombre original “Oak” tenía problemas de marca registrada.

¿Cuál es el significado del concepto “escribir una vez, ejecutar en cualquier lugar” en la historia de Java?

“Escribir una vez, ejecutar en cualquier lugar” es una característica clave de Java que permite que el código escrito en Java se ejecute en diferentes plataformas sin modificaciones. Esta portabilidad convirtió a Java en una opción popular para el desarrollo multiplataforma.

¿Cuáles fueron los principales lanzamientos de Java que dieron forma a su historia?

Algunas versiones importantes de Java incluyen Java 1.0, Java 2 (J2SE 1.2), Java 5 (J2SE 5.0), Java 8 (Java SE 8) y Java 11 (Java SE 11). Cada versión introdujo características y mejoras importantes.

¿Cuál es la diferencia entre JDK, JRE y JVM en el contexto de las versiones de Java?

JDK (Java Development Kit) es un paquete de software utilizado para el desarrollo de Java, incluido el compilador y las herramientas. JRE (Java Runtime Environment) es necesario para ejecutar aplicaciones Java. Incluye la JVM (Java Virtual Machine) y bibliotecas esenciales. JVM es el motor de ejecución que ejecuta el código de bytes de Java.

¿Qué versión de Java debo usar para mi proyecto?

Depende de los requisitos de su proyecto. Si necesita soporte a largo plazo (LTS), considere usar versiones de LTS como Java 8 o Java 11. Para obtener las funciones más recientes, use la versión más reciente. Garantice la compatibilidad con sus bibliotecas y marcos.

¿Java sigue siendo relevante hoy en día?

Sí, Java sigue siendo muy relevante en varios ámbitos, incluido el desarrollo web, el desarrollo de aplicaciones móviles (Android), el procesamiento de big data, la computación en la nube y el software empresarial. Tiene una comunidad de desarrolladores grande y activa.

¿Aún se admiten versiones anteriores de Java?

Oracle proporciona soporte a largo plazo (LTS) para determinadas versiones de Java, que incluye actualizaciones y parches de seguridad. Otras versiones pueden tener soporte limitado o nulo, por lo que es importante mantenerse actualizado.

¿Cómo puedo actualizar mi versión de Java a la última versión?

Puede descargar la última versión de Java desde el sitio web oficial de Oracle o utilizar administradores de paquetes como apt-get (en Linux) o Chocolatey (en Windows) para actualizar Java.

¿Java es de código abierto?

Sí, Java tiene una implementación de código abierto llamada OpenJDK (Java Development Kit). El JDK de Oracle, que está basado en OpenJDK, incluye soporte y características comerciales adicionales.

¿Se utiliza Java para el desarrollo web?

Sí, Java se usa comúnmente para el desarrollo web. Se puede utilizar para crear aplicaciones web dinámicas e interactivas a través de marcos como Spring y JavaServer Faces (JSF).

¿Puedo desarrollar aplicaciones móviles con Java?

Sí, Java se puede utilizar para desarrollar aplicaciones móviles de Android. Android Studio, el entorno de desarrollo integrado (IDE) oficial para Android, admite Java como uno de sus principales lenguajes de programación.

¿Qué es la programación Java del lado del servidor?

La programación Java del lado del servidor implica crear aplicaciones que se ejecutan en el servidor en lugar de en la máquina del cliente. Java proporciona tecnologías como Java EE (Enterprise Edition) y Spring Boot para crear aplicaciones del lado del servidor sólidas y escalables.

¿Se utiliza Java para el desarrollo de juegos?

Si bien Java no se usa tan comúnmente para el desarrollo de juegos como otros lenguajes, todavía se utiliza para crear ciertos tipos de juegos, especialmente juegos móviles para dispositivos Android. Bibliotecas como LibGDX permiten el desarrollo de juegos basados ​​en Java.

¿Se puede utilizar Java para la informática científica?

Sí, Java se puede utilizar para informática científica y análisis de datos. Bibliotecas como Apache Commons Math y Weka proporcionan herramientas para cálculos matemáticos y estadísticos.

¿Para qué se utiliza Java en los sistemas integrados?

Java se puede utilizar para desarrollar aplicaciones en sistemas integrados, particularmente cuando una plataforma admite la máquina virtual Java (JVM) o cuando Java se compila en código nativo utilizando herramientas como GraalVM. Se utiliza a menudo en dispositivos inteligentes y dispositivos de Internet de las cosas (IoT).

¿Se utiliza Java en el procesamiento de Big Data?

Sí, Java se utiliza en el procesamiento de Big Data. Hadoop, un marco popular para el almacenamiento distribuido y el procesamiento de grandes conjuntos de datos, utiliza Java para su implementación. Java también se utiliza para crear aplicaciones en Apache Spark, otro marco de procesamiento de Big Data.

¿Cuáles son algunos marcos Java populares?

Algunos marcos Java populares incluyen Spring, JavaServer Faces (JSF), Hibernate (para mapeo relacional de objetos), Apache Struts y Play Framework. Estos marcos proporcionan herramientas y estructuras para varios tipos de desarrollo de aplicaciones.

¿Se utiliza Java en la computación en la nube?

Sí, Java se utiliza en entornos de computación en la nube. Muchos proveedores de servicios en la nube ofrecen soporte para aplicaciones Java. Además, los marcos basados ​​en Java como Spring Cloud proporcionan herramientas para crear aplicaciones nativas de la nube.

Ey! aun puedes saber más

En este capítulo abordamos la historia y la evolución de Java. Pero te será muy útil saber más acerca de paradigmas de programación. Más adelante abordaremos uno de ellos el POO, Paradigma orientado objetos. Te recomendamos leer estos dos artículos, más adelante veremos POO en profundidad.

No te detengas, sigue avanzando

Aquí tienes un propósito para este 2024 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera!

Universidad Hacking. Todo en Ciberseguridad. Curso Completo

Aprende Hacking Ético y Ciberseguridad sin necesitar conocimientos Previos. Practica Hacking Ético y Ciberseguridad aquí

Calificación: 4,6 de 5 (2.877 calificaciones) 15.284 estudiantes Creado por Alvaro Chirou • 1.800.000+ Enrollments Worldwide

Lo que aprenderás

  • Aprende Seguridad informática
  • Te enseñare Hacking Ético
  • Veremos Ciberseguridad
  • La base principal del Hacking, Redes
  • Esto es alternativo que puedes aprender, Programación (python)
  • Necesitaras saber Python para, Hacking con Python
  • Te enseñare Análisis de Malware, además haremos laboratorios, practicas y ejecutaremos Malware para que veas su comportamiento
  • Te enseñare a reforzar tu Privacidad y Anonimato
  • Aprenderás una de las herramientas mas populares por excelencia en el mundo del Hacking, Metasploit
  • Es importante que aprendas Seguridad informática Mobile ya que usamos nuestro celular como una PC
  • Veremos también el top 10 de Owasp Web
  • Veremos también el top 10 de Owasp mobile
  • Veremos también el top 10 de Owasp API
  • Ante la demanda del mercado, te enseñare Seguridad informática para empresas
  • Veras también la suit de herramientas de seguridad informática en un sistema operativo, Kali Linux
  • Herramientas de hacking para el celular en Termux
  • Seguridad informática en WordPress
  • Análisis de trafico en Wireshark

El Hacking Ético y Ciberseguridad es Transversal a todo lo que sea Tecnología. Es decir, cualquier dispositivo inteligente, sea Celular, Computadora, o hasta hoy un Vehículo, debe haber Seguridad informática.

¿Esto que significa?

Que hoy más que nunca, se necesitan personas capacitadas en este rubro para trabajar.

Por esa razón cree esta formación profesional para compartirte mis conocimientos y experiencia en la materia y puedas iniciar en este mundo del Hacking Ético y Ciberseguridad.

Te voy a estar acompañando en el proceso de aprendizaje, donde si estas empezando desde 0, sin conocimientos previos, no es un impedimento ya que iniciaremos como si no supieras nada de la materia.

Y si sos una persona con conocimientos, podrás iniciar directamente en el nivel más avanzado o en el que tu elijas.

Como en todos mis cursos en udemy, tendrás muchísima practica para que materialices lo que vas aprendiendo.

Empieza a aprender ya mismo!

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes serguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/como-iniciarse-en-ciberseguridad-y-hacking-en-2024/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Cómo Iniciarse en Hacking y Ciberseguridad en 2024

Curso Gratis de Programación

Curso Gratis Linux – Capitulo 1 – Introducción a Linux

Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios

Como iniciarse en TRY HACK ME – Complete Beginner #1

OSINT #1 Más de 200 Search Tools