JavaRush /Java блог /Frontend /Java != JavaScript
Dr-John Zoidberg
41 уровень
Марс

Java != JavaScript

Статья из группы Frontend
Вы начинаете учить программирование. Ваши мозги вскипают от обилия терминов, незнакомых слов и связей между ними. К тому же слова эти в основном происходят из английского языка, который, скорее всего, для вас не родной. Постепенно вы начинаете строить ассоциативные связи: объектный и объектно-ориентированный, функция и функциональность, переменные и константы… Так работает наш мозг. Для экономии нейронных усилий он придумывает эти ассоциации. Именно по этой причине новички зачастую путают Java и JavaScript и считают, что они близкие родственники. На самом деле они близки не более, чем два других языка с очень разными названиями. Их похожие имена — не что иное, как маркетинговый трюк.
Java != JavaScript - 1

Сначала была Java

Язык Java первоначально предназначенный для интерактивного телевидения и любительских устройств, сначала назывался Oak, в честь дуба, который рос рядом с офисом главного создателя языка. Позже проект переименовали в Green и, наконец, возможно, под влиянием многократного вливания кофеина в организм, мы получили название Java. Как марка кофе. Или остров. Смотря на это название, кажется, что оно напрашивалось само собой: мы ведь говорим о разработчиках, а у них с кофе особые отношения…
Java != JavaScript - 2
Компания Sun Microsystems выпустила первую версию Java в 1995 году. Её слоган нам обещал, что то, что однажды написанное на этом языке будет работать везде («Write Once, Run Anywhere»). Это означает, что один и тот же код можно скомпилировать для различных платформ. Это, а также привычный C-образный синтаксис и возможность работать в браузерах привели к тому, что популярность Java росла чрезвычайно быстро.

JavaScript: прошло 10 дней

В том самом году, когда мир узрел Java 1.0, сотрудник Netscape по имени Брендан Эйх написал нечто особенное. Работодатель поручил Брендану создать язык, который изначально запускается в браузере (в отличие от Java, для которого требуются инкапсулированные Java-программы для загрузки) и будет достаточно прост, чтобы привлечь непрофессиональных программистов. По мере того, как Java набирала популярность, менеджеры Eich хотели, чтобы их детище «выглядело как Java». Эйх в какой-то степени подчинился, но не отошёл от главной цели. Он писал язык для создания скриптов на стороне клиента, предназначенный для непрофессиональных разработчиков, а всё это вовсе не похоже на Java.
Java != JavaScript - 3
Тем не менее, команде Netscape нужно было прорекламировать свой новый язык. Вероятно, поэтому проект JavaScript изначально носил имя «Mocha» (это тоже кофе, да). Позднее имя поменяли на «LiveScript» и, наконец, на «JavaScript». Это был маркетинговый ход. Команда Netscape хотела выехать на славе Java.

Они разные в очень важных аспектах

Java != JavaScript - 4
Разумеется, и Java, и JavaScript — языки программирования. Вы можете использовать оба для создания приложений, но то же самое можно сказать о двух любых языках. Важное различие заключается в том, что Java —язык программирования общего назначения, который компилируется, поддерживает параллельные процессы, строго типизирован, основан на классах и объектно-ориентирован. В свою очередь, JavaScript — это, прежде всего, веб-язык, интерпретируемый, однопотоковый, слабо типизированный, основанный на прототипах и мультипарадигме.

Еда на вынос

Было бы неверным говорить, что Java и JavaScript полностью отличаются друг от друга, не имеют сходства. Оба этих языка имеют С-подобный синтаксис. Брендан Эйх сознательно перенёс некоторые особенности Java в JavaScript. Однако основные цели языков настолько различны, что сходство на этом и заканчивается.
Java JavaScript
Разработан 1995 год, Джеймс Гослинг, Sun Microsystems. -1995 год (позднее), Брендан Айхе, Netscape Communications.
Тип языка Объектно-ориентированный язык, в котором абсолютно всё создается в классах. Объектно-ориентированный язык сценариев (прототип-ориентированный: наследование реализовано через клонирование уже существующих объектов – прототипов).
Типизация Статическая (проверка типов осуществляется во время компиляции) и сильная(переменные привязаны к конкретным типам данных, и если ожидаемый и фактический типы не совпадут, на любом этапе проверки будет выдана ошибка. Динамическая (проверка типов осуществляется во время исполнения) и слабая (тип может менятся по ходу выполнения программы).
Модификация После компиляции Java-приложения, его нельзя менять на лету, нужно редакировать изначальный код. -JavaScript -код можно модифицировать без компиляции или интерпретации.
Среда выполнения Java используется для создания приложений, которые запускаются на виртуальных машинах или в браузерах. Код JavaScript выполняется только в браузере (node.js — это уже совсем другая история).
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Dmitry Vezhnin Уровень 3
31 августа 2017
С появлением Node.js программы написанные на JavaScript можно выполнять и на сервере.