• Últimas noticias

    4. La historia completa de JAVA

    Cuarta entrega  del curso de Java.

    Es interesante, al comenzar a estudiar un lenguaje de programación, no solo conocer su sintaxis y su lógica de programación, sino también la estructura del mismo y porqué no la historia de su creación. 


    índice de este curso


    Versión de este curso en video


    Si querés podés ver el video correspondiente a este curso


    JAVA

    Hoy en día Java es uno de los lenguajes más populares del mundo. El mercado laboral que existe en base a este lenguaje es gigante y las aplicaciones en las que se les da uso también. Pero, ¿cómo llego Java a cobrar tanta relevancia en el mundo de la informática? Para eso tenemos que conocer un poco la historia de su creador.

    James Gosling
    Detrás de la creación de este lenguaje se encuentra James Gosling, 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 interprete 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

    Green Project
    .
    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.
    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 Mitsubishi, Matsushita que luego paso a ser Panasonic, Toshiba y 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.

    *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.

    ¿Qué tiene que ver JAVA en esto?

    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 y seguridad del proyecto del equipo de Sun. Así fue como James Gosling se ofreció para voluntariamente como la única persona en el grupo que había creado un compilador antes para hacer que C fuera seguro para ese entorno. 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 y Smalltalk. Así que en realidad el lenguaje incluye muchas partes de muchos otros lenguajes.

    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”.

    La industria de la electrónica de consumo

    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.

    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 por que 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.

    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.

    El renacer del Fénix

    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.

    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 tercer 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”.

    Java en los navegadores Web

    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. 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.

    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.

    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.

    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. Aún el caso sigue sin resolver, pero Oracle dijo que no se rendiría.

    ¿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 intimo 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.

    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.

    En la próxima entrega se abordará el tema de la máquina virtual de JAVA, un elemento vital que hizo que este lenguaje llegué a ser lo que es en la actualidad.


    ANTERIOR
    3. Compiladores e intérpretes
    SIGUIENTE
    5. La máquina virtual de JAVA

    Autor: Pablo Jasinski

    Profesor en Escuela Técnica UBA y Escuela Técnica Nº35, especializado en materias de programación, arquitectura de las computadoras y redes. Profesional en el área de programación y desarrollo de videojuegos.

    No hay comentarios