Escribí este artículo porque vi a alguien preguntando esto en Zhihu, y pensé: ¿cómo puede haber una pregunta tan estúpida? Pero pensándolo bien, en aquel entonces yo también era un estúpido que no lograba entender la relación entre ambos; el conocimiento necesita un proceso.
Luego vi respuestas clásicas como: la relación entre Java y JavaScript es como la relación entre Lei Feng y la Pagoda Leifeng, o como la relación entre la esposa y el pastel de esposa.
Generalmente se cree que la razón por la que Netscape nombró a LiveScript como JavaScript fue porque Java era el lenguaje de programación más popular en ese momento, y tener el nombre "Java" ayudaría a la difusión de este nuevo lenguaje.
Sus similitudes incluyen:
- Su sintaxis es muy similar a la del lenguaje C;
- Ambos son orientados a objetos (aunque la forma de implementación es ligeramente diferente);
- JavaScript tomó como referencia las reglas de nomenclatura de Java en su diseño;
Sus diferencias incluyen:
- JavaScript es un lenguaje de tipado dinámico, mientras que Java es de tipado estático;
- JavaScript es débilmente tipado, Java es fuertemente tipado;
- La orientación a objetos de JavaScript se implementa basada en prototipos (prototype-based), mientras que la de Java está basada en clases (class-based);
Aparte de que JavaScript se parece bastante a Java superficialmente, su estilo de lenguaje es muy diferente. JavaScript no tomó como referencia a Java en su diseño, sino a lenguajes como Self y Scheme.