Saturday, February 17, 2007

JavaScript NO ES Java

JavaScript != Java
Aunque sus nombres son similares, no se parecen en nada. Ambos lenguajes son ampliamente utilizados en la actualidad, coincidentemente son contemporaneos, pero se utilizan en situaciones muy diferentes y de ninguna manera uno tiene que ver con el otro.

JavaScript fue desarrollado, por Netscape, para que las personas pudieran interactuar con las paginas web, sin necesidad de recargar toda la página. Necesitan un lenguaje que se ejecutará del lado del cliente(browser), que de alguna manera "le dijera" a la página, como debía reaccionar a ciertas acciones del cliente.
De esta manera en diciembre del año 1995, la versión 2.0B3 de Netscape fue la primera en incluir un interprete, que permitiá ejecutar instrucciones de un lenguaje de programación en una página web, a este lenguaje le dieron el nombre de, LiveScript, con esto cualquier persona que estuviera utilizando la última versión de Netscape, podián interactuar con páginas que ulizaban LiveScript, sin necesidad de instalar ningún tipo de plug-in.
Para variar mis estimados amigos del browser de la E azul, intentaron hacer lo mismo y 9 meses después en agosto de 1996, su browser incluia un interprete para un lenguaje llamado vbscript, cuya sintaxis era similar a la de LiveScript, y que entre algunas otras cosas permitio la creacion del worm ILoveYou (pero esa es otra historia).

Java fue desarrollado por Sun Microsystems, y sus inicios se registran a mediados del año 1992, como parte de un proyecto de investigación y desarrollo tecnológico. La idea era crear un lenguaje de programación que fuera capaz de correr independientemente de la arquitectura del microprocesador. Fue desarrollado por James Gosling y originalmente su nombre fue Oak.
El nacimiento oficial de Java fue el 23 de Mayo de 1995. En sus inicios fue utilizado para el desarrollo de aplicaciones en el Internet, muy famosas en su tiempo, llamadas Applets, que necesitaban un plug-in para poder funcionar, que al inicio se llamo HotJava y luego se convirtio en un concepto muchisimo más amplio y que ahora conocemos con el nombre de Java Virtual Machine.

De alli en adelante el nombre de Java comenzo a ser muy conocido, en muchas páginas se empezaron a utilizar los Applets. Netscape anunció que su browser soportaría Java a partir de la version 3, y también renombro su lenguaje LiveScript a JavaScript.(Este fue el BOOM para Java)

JavaScript se convirtio en un lenguaje éstandar de scripting (ECMAScript o ECMA-262), y cada web browser hace su propia implementación. Con lo cual podemos decir que JavaScript es la implementacion de ECMAScript de NetScape, y JScript es la implementacion de ECMAScript de mis amigos del browser de la e azul. Y es por eso que algunas instrucciones de JavaScript no funcionan en algunos browsers.

JavaScript y Java tienen diferencias fundamentales muy muy muy marcadas. Empezando porque JavaScript es un lenguaje interpretado y muy poco estricto en la sintaxis del lenguaje(da lo mismo escribir 'Document' que 'document'), e importante solo funciona en un Web Browser, la intepretación la hace cada browser como se le pegue la gana.

Java es un lenguaje de programación Orientado a Objetos, que se compila (no se interpreta, se compila para obtener ByteCode), es un lenguaje muy estricto en su sintaxis(ni en broma significa lo mismo escribir 'Document' que 'document'), y sobre todo, estoy seguro que el Browser donde usted esta leyendo esto, es Java Enabled, y no solo el Browser, su computadora también es casi seguro que tiene instalada la Virtual Machine, su celular es casi seguro que tambien soporta Java(donde?? metase a los Juegos, algunos ringtones, muy posiblemente el menú de su celular este hecho en Java, etc.), 8 de cada 10 celulares son Java Enabled, y no solo los celulares, actualmente existen aprox. 4.8 billones de dispositivos Java Enabled.

En los proximos años, los más de 3 billones de habitantes del planeta que aún no han tenido ningún tipo de contacto con el Internet, es muy probable que su primera experiencia con Internet, sea por medio de un dispositivo movil, y es casi seguro que va ha ser un dispositivo Java Enable. Hace poco me entere por un blog que leo periódicamente, que Java es el lenguaje más popular en SourceForce.

Con Java se desarrollan cualquier tipo de apliaciones, Aplicaciones de Escritorio, Aplicaciones para el Internet, Aplicaciones para Celular, Aplicaciones Cientificas, juguetes, televisores, relojes, aviones, camaras, etc. incluso hay aplicaciones hecha en Java que han llegado a Marte con la NASA, y desde entonces se dice que "Java Is Everywhere". Java en si es un mundo de tecnologias.

Porque escribo todo esto de Java???? No es porque yo sea fan de Java y que quiera hacer de menos a JavaScript. De hecho JavaScript últimamente ha tenido un crecimiento increible con el rápido desarrollo de aplicaciones AJAX. Y Java y JavaScript se llevan muy bien con los nuevos componentes JSF(Java Server Faces) AJAX Enabled.

Escribo esto porque estoy harto de encontrarme personas que piensan que JavaScript es lo mismo que Java. Y me molesta aun más cuando son personas que llevan mucho tiempo trabajando en el mundo de la tecnología. Y si es cierto no es su culpa, los terminos tienen a confundirlo a uno, pero si no lo saben no lo supongan por favor!!!! Y lo peor peor peor, es encontrarme a un desarrollador, a un programador, aún tipo que debería de entender las diferencias básicas entre un lenguaje interpretado y uno compilado, que piensa que porque se disparó un su script en una página web esta programando en Java(Eso no es cierto). Por esas personas lo escribo, porque talvez no existía un lugar donde lo pudieran saber. Este post no es desahogo, es una Gran Aclaración, de que JavaScript Y Java NO SON LO MISMO!!!!!!!!!!!!

Para dejarlo claro...
  • JavaScritp no es Java
  • JavaScript no es un "subset" de Java
  • JavaScript no es una version "más light" de Java
  • Programar JavaScript no es programar en Java
  • JavaScript no es un lenguaje "más sencillo" de Java para "hacer" páginas web
  • Programar en JavaScript no implica saber programar en Java
  • Ni Programar en Java implica saber programar JavaScript

JavaScript y Java son tecnología ampliamente utilizadas en la actulidad, pero son dos cosas completamente diferentes.

12 comments:

Javier Aroche said...

:O gracias por aclarar los conceptos, parece que hasta yo estaba equivocado :P

sirgt said...

interesante reportaje sobre java y javascript... hay un punto, el hecho de que trabajes en tecnologia no quire decir que te las sepas todas ;) aparte que mucha gente trabaja en esto solo por la plata y no como algunos pocos que si nos gusta nos motiva y no solo nos da de comer :D

salu2

Pablo Emilio said...

Osea puess... No es lo mismo porque Java es para los nerds e ingenieros como yo y JavaScript para los bachilleres... JavaScrip se aprende en una semana.. lo mio fue 5 años...

Mano, que no te enojen esas muladas, quien queda mal es la persona... no vos, mejor ser mas politico: darle una explicada para que sepa el grado de ignorancia en el que se encuentra, talvez asi se preocupa mas por aprender... y no tus enojos de niño rabioso.

Juan Pablo Chaclan said...

Es cierto no por trabajar en tecnologia tenes que conocerlas todas, de hecho no creo que exista en el mundo quien las conozca todas. En mi caso, yo desconozco de muchisimas tecnologias, por ejemplo desconozco totalmente de Oracle y sus productos , pero mi punto es hacer una aclaracion, en dos terminos que se parecen mucho y que muchas personas solo hacen unas supocision simplemente porque los nombres son similares.

Pablo, tenes razon al final del post se me fue un poquito el desahogo, pero es que ya tenia ratos de querer hacer la aclaracion y sobre todo, lo que no me gustan son las suposiciones. Y JavaScript no es para bachilleres, existen personas, especialista en JavaScript que se dedican a programar componentes AJAX que hacen cosas muy bonitas, para que los poco creativos como yo, unicamente los usemos. El punto es que son tecnologias distintas, y creeme mis respetos para los que programan JavaScript, un ejemplo son la mara que se disparo el Google Web Toolkit. Esa mara si sabe de JavaScript.

Anonymous said...

Java si es interpretado, sin importar que también sea compilado.

Juan Pablo Chaclan said...

Es cierto. Java tambien tiene que ser interpretado, primero por el compilado y luego por la virtual machine.
En general podemos decir que todos los lenguajes son interpretado(incluso el idioma).
Lo que confunde posiblemente es el termino interpretar y el contexto en el que se utiliza.

guisho said...

Don JP, como siempre un buen escrito mas. Sobre todo por el hecho que efectivamente hay mucha confusión al respecto. No es "tecnicalismos", pero el mezclar los términos genera a veces situaciones no esperadas. Por ejemplo, una vez me ofrecieron un sistema escrito en "Java" que resultó ser "Javascript".
Todo esto no quiere decir que Javascript sea malo y Java bueno, o que al revés. Cada uno está diseñado con diferente finalidad. En lo personal no me gusta Javascript, aunque el auge que está tomando Ajax lo hará cada vez mád común. Opino que el gran problema de JavaScript es la falta de estandarización entre los distintos navegadores. Saludos,

Luis H.

JAD said...

Definitivamente si sos un fan de JAVA

Beto said...

Excelente Juan Pablo :)

Tenía muy clara ambas diferencias, pero ahora que leí pues aún más claras.

Te agradezco por el contenido de calidad que publicas, no haces un post más, sino practicamente un artículo.

Felicitaciones, pasaré por aquí más a menudo,
Beto

Anonymous said...

Gracias, sabia que no eran iguales, pero no tenia muy en claro las diferencias, gracias x aclararlas...saludos desde Perú

ElHombreSonriente said...

yo ya me sabia toda esa historia e igual me cagaba encontrarme con personas asi, hace tiempo sabia de eso gracias a un libro de javascript que me explico las diferencias.

Anonymous said...

Juan Pablo, tu post es muy bueno, ojala todo mundo pudiera leerlo para que les quedara clara la diferencia entre Java y JavaScript.

Saludos