Я написал эту статью, потому что увидел, как кто-то задаёт этот вопрос на Zhihu, и подумал: как вообще может существовать такой тупой вопрос? Но потом вспомнил, что я сам тогда, будучи таким же тупым, тоже, казалось, не мог разобраться во взаимоотношениях между этими двумя; познание требует процесса.

Потом я увидел несколько классических ответов: отношения между Java и Javascript — это как отношения между Лэй Фэном и пагодой Лэйфэн, а также как отношения между женой и пирожным «жена».

9c32a3e498cb5822f8fb3cd0d07b4a78_m

Обычно считается, что причиной, по которой Netscape тогда переименовала LiveScript в JavaScript, было то, что Java в то время был самым популярным языком программирования, и наличие в названии «Java» способствовало распространению этого нового языка.

К их сходствам относится:

  • Их синтаксис очень похож на синтаксис языка C;
  • Оба они объектно-ориентированы (хотя реализовано это немного по-разному);
  • JavaScript при разработке ориентировался на соглашения об именовании Java;

К их различиям относится:

  • JavaScript — язык с динамической типизацией, а Java — язык со статической типизацией;
  • JavaScript имеет слабую типизацию, а Java — сильную;
  • Объектно-ориентированность JavaScript реализована на основе прототипов (prototype-based), тогда как в Java — на основе классов (class-based);

Помимо того, что JavaScript немного похож на Java, его языковой стиль сильно отличается. В число языков, на которые ориентировались при разработке JavaScript, не входил Java, но входили такие языки, как Self и Scheme.