4. La historia completa de JAVA
Cuarta entrega del curso de Java.
JAVA
¿Qué se suponía que era el Star 7?
¿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.
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.
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
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.
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
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:
Java en los navegadores WebEs 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 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 WebEs 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
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 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
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
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?
¿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
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
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
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.
No hay comentarios