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.

9c32a3e498cb5822f8fb3cd0d07b4a78_m

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.