como desarrollador web Jeremy Keith dijo en 2009, «Java es para JavaScript lo que el jamón es para el hámster». La precisión exacta de esa analogía es discutible, pero el espíritu detrás de ella es sólido: Java y JavaScript, a pesar de compartir una raíz lingüística común, son dos lenguajes de programación muy diferentes. A lo largo de los años, han llegado a superponerse un poco más, pero JavaScript sigue siendo el lenguaje frontal dominante que hace que los sitios web sean interactivos, mientras que Java sigue siendo popular para la programación de aplicaciones y del lado del servidor. Si está tratando de contratar a un desarrollador, aprender a codificar o crear un sitio/aplicación, es importante saber la diferencia entre Java y Javascript.
Diferentes historias
TLDR: Java fue primero. JavaScript, que era similar pero técnicamente no estaba relacionado con Java, apareció para satisfacer una necesidad diferente.
Java fue desarrollado durante cuatro años por James Gosling y un equipo de investigadores de Sun Microsystems, a partir de 1991 y lanzado en 1995. Desarrollaron un lenguaje orientado a objetos que podía ejecutarse en múltiples sistemas operativos. Desde entonces, se ha utilizado en una amplia gama de dispositivos, desde teléfonos hasta rovers de la NASA, y también fue una tecnología web multimedia (como Flash y JavaScript todavía lo es) a través de Java Applets hasta 2016, cuando Java retiró oficialmente el soporte.
JavaScript también se lanzó en 1995, pero fue creado durante 10 días por Brendan Eich en Netscape como una forma de hacer que las páginas web fueran interactivas después de que el navegador las cargara. Inicialmente se llamó Mocha en mayo de 1995, pero se envió con Netscape Navigator como LiveScript en septiembre y se cambió a JavaScript en diciembre de 1995. Dado que el lenguaje se creó para ser similar a Java como una contraparte de secuencias de comandos ligeras, el nombre en realidad hace sentido, y también fue una jugada de marketing bastante buena. Desde entonces, ha crecido hasta convertirse en uno de los tres componentes principales de la Internet moderna, junto con HTML y CSS.
Diferencias técnicas
Tanto Java como JavaScript son lenguajes de programación orientados a objetos, lo que significa que los programadores pueden hacer que las cosas funcionen creando fragmentos de información y conectándolos con otros fragmentos de información. Un objeto «gato», por ejemplo, podría incluir información sobre el nombre, el color y la edad de un gato, así como una lista de cosas que el gato puede hacer, como maullar, comer y dormir. La información en ese objeto está disponible para el programador, quien puede imprimir información sobre el gato o hacer que haga algo.
Esa es la mayor similitud. Sin embargo, las diferencias se acumulan a partir de ahí.
1. Se compila Java, se interpreta JavaScript
Java tiene un sistema de «escribir una vez, ejecutar en cualquier lugar». Funciona así:
- Escribe el código en Java.
- Compile el código en un código de bytes legible por computadora.
- Ejecute el código en la máquina virtual de Java, que es una computadora virtual que ejecuta el código de bytes de Java en los dispositivos.
Esto significa que cada vez que desee cambiar el programa, debe realizar el cambio en el código Java y traducir todo el programa a código de bytes nuevamente.
Sin embargo, los navegadores web pueden leer JavaScript tal como está escrito. El navegador simplemente verifica cada línea y la ejecuta. Esto lo hace más flexible y más fácil de cambiar, aunque va a la zaga del código compilado en cuanto a rendimiento, ya que no se ejecuta directamente en un lenguaje legible por máquina.
2. Escritura estática (Java) frente a escritura dinámica (JavaScript)
Una gran parte de los lenguajes de programación es almacenar valores en variables. Java tiene tipos estáticos, lo que significa que debe decir qué tipo de valor contiene cada variable y luego se corrige. Por ejemplo:
int a_number = 42; char a_letter = ‘z’;
«int» tiene que ser un número y «char» tiene que ser una letra.
JavaScript, sin embargo, se escribe dinámicamente, por lo que cualquier variable puede contener cualquier tipo de datos y pueden cambiar sin problemas. El siguiente código funciona bien:
let number = 42; let a_letter = “z”;
Java tiene una ventaja de velocidad y depuración aquí: declarar tipos de variables hace que encontrar problemas sea más rápido y también permite que el código se ejecute más rápido. Sin embargo, JavaScript es más rápido para trabajar con la mayoría de los desarrolladores.
3. Concurrencia
Java puede ejecutar varios subprocesos diferentes al mismo tiempo, lo que significa que puede hacer varias cosas a la vez.
En su lugar, JavaScript usa un bucle de eventos, esencialmente trabajando a través de una pila de cosas por hacer hasta que llega al final. Una vez más, Java tiene aquí una ventaja de rendimiento.
4. Java tiene clases, JavaScript tiene prototipos
Recuerde, Java y JavaScript usan objetos para almacenar información. Ambos también usan «herencia», que permite que los objetos obtengan sus propiedades de otro lugar. En Java, obtienen propiedades de las clases, que son esencialmente planos con instrucciones sobre cómo construir el objeto. En JavaScript, los objetos nuevos se crean utilizando prototipos u objetos que se pueden copiar para crear un objeto nuevo.
Básicamente, eso significa que cualquier objeto en JavaScript puede convertirse en un prototipo, mientras que Java requiere que crees una clase que pueda crear los objetos. Para hacer referencia a un ejemplo anterior, Java proporciona instrucciones sobre cómo construir un gato, mientras que JavaScript simplemente lo clona.
¿Cuál necesito?
Si los detalles técnicos estaban haciendo que sus ojos se nublaran, ¡puede comenzar a prestar atención nuevamente ahora! Si está tratando de decidir entre Java y JavaScript, realmente no es demasiado difícil.
Por lo general, querrá JavaScript para:
- Sitios web, aplicaciones web y otras interfaces frontales
- Servidores web simples/tareas de back-end (con Node.js)
- Creación de juegos y animaciones basados en navegador
- Aplicaciones/juegos/programas creados en Electron u otro marco multiplataforma
Sin embargo, probablemente querrá usar Java para:
- aplicaciones android
- aplicaciones de escritorio
- Aplicaciones del lado del servidor
- Escribir código para teléfonos, dispositivos IoT y otro hardware
Si está buscando elegir un idioma para aprender, depende de sus objetivos. Si está buscando desarrollar una carrera de programación y obtener una comprensión sólida de los fundamentos de la programación, o si desea trabajar en aplicaciones que no son web, Java se considera el lenguaje técnicamente más riguroso. También es el más utilizado en el mundo.
Sin embargo, si desea ingresar al desarrollo web o está planeando principalmente trabajar en sitios web y aplicaciones web, JavaScript es probablemente una habilidad «imprescindible». A la larga, no está de más aprender ambos, ya que ambos abarcan conceptos que pueden convertirlo en un mejor (¡y más comercial!) programador.
Si está buscando ingresar al desarrollo de juegos, estos lenguajes de programación serán más adecuados para usted.
Créditos de la imagen: Logotipo del lenguaje de programación Java, Logotipo de JavaScript, Java-jvm, Programación basada en eventos explicada de forma sencilla, Clases de programación orientada a objetos