Você está na página 1de 4

Diferencias de java y javaScript

Dada la similitud de nombre suelen considerarse como sinónimos o muy similares


cuando existen diferencias apreciables entre las que cabe destacar: * Java es un
lenguaje de programación y JavaScript no, aunque ambos comparten la misma
sintaxis.

JavaScript no es un lenguaje compilado. JavaScript se integra directamente en las


páginas HTML y es interpretado (sin estar compilado) por el cliente (navegador). Es
decir, el programa fuente (página web) se ejecuta directamente.

JavaScript está basado en objetos, mientras que Java es un lenguaje de programación


orientado a objetos (OOP). JavaScript no utiliza clases, herencias o técnicas
habituales en la OOP.

No existe la declaración de tipos de variables a utilizar. JavaScript se encarga de ello


automáticamente.

Las referencias a los objetos se comprueban en tiempo real durante la ejecución. En


los lenguajes compilados como Java esa comprobación se efectúa al compilarse.

JavaScript no puede (no sabe) escribir en el disco duro (excepto cookies). Por ello
puede considerarse como un lenguaje seguro en Internet, en el sentido que desde las
páginas web, con JavaScript, no se pueden «gastar bromas».

Dado que comparten una palabra al principio de su nombre, muchas personas


piensan que Java y JavaScript están relacionados, o que JavaScript es un subconjunto
de Java y cosas parecidas... Nada más lejos de la realidad.

Java nació en el año 1991 en la empresa Sun Microsystems, de la mano de James


Gosling. Su objetivo inicial era crear aplicaciones para receptores de televisión y
dispositivos embebidos, aunque al final haya terminado funcionando en casi todas
partes. Inicialmente iba a llamarse Oak, y luego Green, pero finalmente el nombre
elegido es el que todos conocemos. La Wikipedia tiene información muy interesante
sobre su historia y su nombre que te recomiendo que te leas.

JavaScript es un lenguaje de programación posterior, creado a mediados de los años


‘90 por Brendan Eich, de la empresa Netscape. Su objetivo era dotar de
interactividad a las páginas web visualizadas con su navegador de Internet, Netscape
Navigator, el líder del mercado por aquella época. Su nombre en código durante el
desarrollo del lenguaje era Mocha, y pensaban lanzarlo finalmente como LiveScript,
aunque al final se acabó denominando JavaScript por la gran influencia en su sintaxis
por parte del lenguaje Java, aunque las similitudes son únicamente estéticas. En la
actualidad, además de ser el lenguaje utilizado casi en exclusiva para añadir
interactividad a las páginas Web, JavaScript se encuentra integrado en otras muchas
aplicaciones además de los navegadores: servidores, lenguajes de programación de
propósito específico como Node.js o sistemas operativos como Windows.

Bien es cierto que la gente de Netscape intentó aprovechar el tirón de marketing que
ofrecía Java en aquel momento, y usando la palabra "Java" en el nombre del nuevo
lenguaje pretendían darle un halo de seriedad. Me imagino que, dada la confusión
que generaron, se arrepintieron pronto de su decisión y de no haberle dejado el
nombre de LiveScript.

Aparte de esa raíz común en el nombre, Java y JavaScript son lenguajes totalmente
diferentes. He aquí algunos ejemplos importantes de sus muchas diferencias:

JavaScript tradicionalmente ha sido un lenguaje interpretado, y Java es compilado.


Para entendernos, y dicho muy básicamente, los programas JavaScript son archivos
de texto que pueden leer tanto los ordenadores como las personas y que se
interpretan a medida que se leen para luego ejecutarlos, mientras que los de Java se
compilan a un archivo especial optimizado para que lo lea un ordenador y lo ejecute.
Podríamos entrar en detalles de que Java se compila a un lenguaje intermedio
llamado bytecode que es interpretado por un ejecutar JIT que facilita que sea
multiplataforma, pero no es el objeto de este artículo y quiero mantenerlo
intencionadamente simple. Por otro lado, y abundando en lo mismo, en la actualidad
mucho código JavaScript es compilado (por ejemplo el motor V8 de Chrome y
Node.js compila a código nativo el código JavaScript y puede llegar a ser tan rápido
como cualquier otro). Así que en la actualidad la distinción no es tan clara entrando
en detalle, pero sí se puede afirmar que son de naturaleza diferente porque
JavaScript no requiere una compilación explícita para ser ejecutado.
Java se depura en dos fases y JavaScript en una. Como con todos los lenguajes
interpretados, en JavaScript solamente sabes si has cometido inadvertidamente un
error de sintaxis cuando vas a ejecutar el programa (salvo que uses herramientas
especializadas como Visual Studio o WebStorm, que interpretan el código en
segundo plano). En Java sin embargo, primero se realiza la fase de compilación, en la
que el compilador ya indica los posibles errores de sintaxis que existan. Luego al
ejecutar podrían surgir errores de lógica o de otra índole. En JavaScript todos ellos se
depuran al mismo tiempo, haciéndolo más complicado.

Java es un lenguaje orientado a objetos puro, pero JavaScript está basado en


prototipos. En realidad JavaScript debe simular muchas de las características de
orientación a objetos que se dan en la mayoría de los lenguajes. A cambio
proporciona diversos paradigmas de programación (funcional, imperativo, dinámico
y orientado a objetos) lo que lo convierte en un lenguaje tremendamente versátil. De
hecho en JavaScript es posible cambiar la "base" de la que hereda una clase en
cualquier momento, afectando a todas, cosa imposible en la mayoría de los lenguajes
orientados a objetos.

Java es fuertemente tipado, y JavaScript es débilmente tipado. En Java todas las


variables tienen un tipo determinado y una vez definidas no se pueden cambiar. En
JavaScript una misma variable puede contener primero un texto, luego un número,
luego una fecha o un objeto, etc... Esto es un arma de doble filo pues permite una
gran flexibilidad a cambio de muchos posibles errores si no tenemos cuidado.
Java tiene ámbito por bloque y JavaScript lo tiene por función: el acceso a las
variables depende de dónde las hayamos definido. JavaScript tiene algunas reglas
que pueden despistar bastante a los programadores de otros lenguajes.

JavaScript tiene clausuras, Java las acaba de incorporar. Uno de los conceptos más
importantes en la programación con JavaScript (y en otros lenguajes) son las
clausuras. Java no las tuvo hasta la versión 8 aparecida hace muy poco tiempo, que
añadió también las funciones lambda, para dar soporte al paradigma de
programación funcional.
Las funciones en JavaScript son multi-argumento siempre. En Java es necesario
indicarlo.

JavaScript es estándar, Java no. El control del lenguaje JavaScript lo lleva la


organización sin ánimo de lucro European Computer Manufacturers Association
(ECMA). De hecho su nombre oficial es ECMAScript, y está estandarizado. Por el
contrario el control sobre Java lo tiene Oracle, una empresa privada que decide a su
antojo lo que se hace con él.
En resumen, y para dejar bien clara la diferencia sin palabras técnicas, desmiento a
continuación algunos falsos mitos:
JavaScript NO es lo mismo que Java.

JavaScript NO es un subconjunto de Java.

JavaScript NO es una versión de Java para programar páginas web.

JavaScript NO comparte prácticamente nada con Java. Si acaso la misma sintaxis que
comparte con otros lenguajes como C, C++ o C#, y algún detalle más como algunos
nombres de clases (Math o Date, por ejemplo), pero nada más.

JavaScript NO es más fácil que Java. De hecho en algunas áreas concretas es más
difícil de dominar.

Si sabes programar en Java NO sabes programar en JavaScript. Y viceversa.

JavaScript NO es solo un lenguaje para páginas web, al igual que Java no es un


lenguaje solo para servidor.

Você também pode gostar