Я написал эту статью, потому что увидел, как кто-то задаёт этот вопрос на Zhihu, и подумал: как вообще может существовать такой тупой вопрос? Но потом вспомнил, что я сам тогда, будучи таким же тупым, тоже, казалось, не мог разобраться во взаимоотношениях между этими двумя; познание требует процесса.
Потом я увидел несколько классических ответов: отношения между Java и Javascript — это как отношения между Лэй Фэном и пагодой Лэйфэн, а также как отношения между женой и пирожным «жена».
Обычно считается, что причиной, по которой Netscape тогда переименовала LiveScript в JavaScript, было то, что Java в то время был самым популярным языком программирования, и наличие в названии «Java» способствовало распространению этого нового языка.
К их сходствам относится:
- Их синтаксис очень похож на синтаксис языка C;
- Оба они объектно-ориентированы (хотя реализовано это немного по-разному);
- JavaScript при разработке ориентировался на соглашения об именовании Java;
К их различиям относится:
- JavaScript — язык с динамической типизацией, а Java — язык со статической типизацией;
- JavaScript имеет слабую типизацию, а Java — сильную;
- Объектно-ориентированность JavaScript реализована на основе прототипов (prototype-based), тогда как в Java — на основе классов (class-based);
Помимо того, что JavaScript немного похож на Java, его языковой стиль сильно отличается. В число языков, на которые ориентировались при разработке JavaScript, не входил Java, но входили такие языки, как Self и Scheme.