У чому різниця між JavaScript і Java?


77

У чому різниця між JavaScript і Java?

Відповіді:


573

Java і Javascript схожі, як Car і Carpet - подібні.


11
На жаль, я не можу претендувати на оригінальність. Однак я не пам’ятаю, де я це вперше почув.
— Грег Хьюгілл

13
я не думаю, що це недолік. він заслужив свої бали. це коротка відповідь, і все, що він повинен знати.
— Йоханнес Шауб - litb

3
@Ian Quigley: Ах, це, мабуть, було там, де я це бачив! Дякую.
— Грег Хьюгілл

11
Мені більше подобається версія про шинку та хом'яка.
— Kuba Suder

3
Це погана відповідь. Javascript і Java є обома мовами для написання коду, але вони використовуються в різних контекстах. Автомобіль і Килим взагалі нічим не схожі один на одного. Javascript і Java легко сплутати для новачків
— Піт,

408

Один - це, по суті, іграшка, призначена для написання невеликих фрагментів коду, і традиційно використовується і зловживається недосвідченими програмістами.

Інший - мова сценаріїв для веб-браузерів.


2
Якби ми могли проголосувати категорично, я б проголосував +1 смішно, а в іншому випадку, ме.
— Дон Вейкфілд,

19
Я збирався вас докоряти за те, що ви відмовилися від Javascript, коли він зайшов так далеко за останні кілька років. Потім я позбувся другого абзацу та L’DOL. Але,
— затримайтеся

2
голосували за відмову від Javascript, а потім помітили, що ви говорите про JAVA, і підтримали (і дуже багато).
— Пім Ягер

12
Сумно, що я можу проголосувати лише один раз. Це десь відбувається у моєму профілі на Facebook ...
— Саманта Бранхам

3
@Roman, звичайно, правильний спосіб Java - це писати принаймні 20 різних класів, використовуючи складне успадкування та інші цікаві функції ООП, щоб завершити FizzBuzz :)
— Earlz,

188

Ось деякі відмінності між двома мовами:

  • Java - це статично набрана мова; JavaScript є динамічним.
  • Java заснована на класах; JavaScript заснований на прототипі.
  • Конструктори Java - це спеціальні функції, які можна викликати лише при створенні об'єкта; "Конструктори" JavaScript - це лише стандартні функції.
  • Java вимагає, щоб усі неблокові оператори закінчувалися крапкою з комою; JavaScript вставляє крапки з комою в кінці певних рядків.
  • Java використовує блок-орієнтування; JavaScript використовує функціональне масштабування.
  • Java має неявну thisобласть дії для нестатичних методів та неявну область дії класу; JavaScript має неявний глобальний обсяг.

Ось деякі особливості, які, на мою думку, є сильними сторонами JavaScript:

  • JavaScript підтримує закриття; Java може імітувати своєрідне "закриття" за допомогою анонімних класів. (Реальне закриття може підтримуватися в наступній версії Java.)
  • Усі функції JavaScript варіативні; Функції Java лише варіативні, якщо вони явно позначені.
  • Прототипи JavaScript можуть бути перевизначені під час виконання та мають негайну дію для всіх об’єктів, що посилаються. Класи Java не можна перевизначити таким чином, щоб це впливало на будь-які існуючі екземпляри об'єктів.
  • JavaScript дозволяє перевизначати методи в об'єкті незалежно від його прототипу (думаю, власні класи в Ruby, але на стероїдах); Методи в об'єкті Java прив'язані до його класу і не можуть бути перевизначені під час виконання.

8
З запізненням на 2 роки, але дякую вам за це вдумливе пояснення. Це набагато корисніше та інформативніше, ніж обрана відповідь, і заслуговує набагато більшої кількості голосів IMO
— Ерік Ху,

2
У таких випадках я підтримую обидва. Нам потрібна правильна відповідь, але святі шмоли, виродки, як ми, нам справді потрібно більше цього гумору
— Майкл Деррант

Ви також можете тут набирати жорсткі та вільні типи замість статичного та динамічного типу.
— Сан,

51

Погляньте на посилання Вікіпедії

JavaScript, незважаючи на назву, по суті не пов'язаний з мовою програмування Java, хоча обидва мають загальний синтаксис C, і JavaScript копіює багато імен Java та конвенцій щодо імен. Спочатку мова була названа "LiveScript", але була перейменована в рамках спільного маркетингового договору між Netscape та Sun в обмін на Netscape, що поєднує середовище виконання Java від Java з їх домінуючим браузером. Ключові принципи проектування в JavaScript успадковуються від мов програмування Self і Scheme.


38

Все.

JavaScript був названий таким чином Netscape, щоб заплутати обережних і думати, що це має щось спільне з Java, сучасним модним словом, і це вдалося.

Ці дві мови абсолютно різні.


8
Спочатку Javascript називався Livescript, і сьогодні, мабуть, світ став би кращим місцем, якби вони не перейменували його!
— Грег Хьюгілл,

2
Я сумніваюся, що це мало викликати плутанину - яка користь від компанії від цього? Я підозрюю, що намір був спрямований на успіх Java, хоча ефект був такий, як ви заявили.
— paxdiablo

"їздити на успіху Java", називаючи щось не пов'язане з подібною назвою? Це для мене дуже схоже на те, що "викликати плутанину з маркетинговою метою".
— ddaa,

2
Sun знову спробував цей фокус з іменуванням із "Sun Java Desktop", який, по суті, був фірмовою версією Gnome і не мав нічого спільного з Java.
— Dan Dyer,

1
Так, і це спрацювало. @Greg Hewgill, світ може бути кращим, але Javascript, мабуть, не буде там, де він є сьогодні.
— Dan Rosenstark,


23

JavaScript - це об’єктно-орієнтований сценарій мова яка дозволяє створювати динамічні HTML-сторінки, дозволяючи обробляти вхідні дані та підтримувати дані, як правило, в браузері.

Java - це мова програмування, основний набір бібліотек і платформа віртуальних машин, що дозволяє створювати скомпільовані програми, які працюють майже на кожній платформі, без розповсюдження вихідного коду в необробленому вигляді або перекомпіляції.

Хоча ці два мають схожі назви, вони насправді є двома абсолютно різними мовами програмування / моделями / платформами і використовуються для вирішення абсолютно різних наборів проблем.

Крім того, це безпосередньо зі статті Javascript у Вікіпедії :

Поширеною помилкою є те, що JavaScript подібний або тісно пов’язаний з Java; це не так. Обидва мають C-подібний синтаксис, є об’єктно-орієнтованими, як правило, у песочниці та широко використовуються в клієнтських веб-додатках, але подібність на цьому закінчується. Java має статичне введення тексту; Набір тексту в JavaScript є динамічним (тобто змінна може містити об’єкт будь-якого типу і не може бути обмежена). Java завантажується зі скомпільованого байт-коду; JavaScript завантажується як зручний для читання код. С - їх остання спільна мова предків.


2
Javascript призначений не лише для HTML-сторінок, тепер його включає Java6, BIRT використовує його для створення сценаріїв звітів - я впевнений, що існують інші способи використання, які не є HTML, окрім цих двох.
— paxdiablo

Ти маєш рацію. З розвитком Rhino та деякими іншими розробками, про які ви згадали, Javascript вийшов досить далеко від пісочниці браузера.
— Білл Ящірка

2
Сценарії - це просто один конкретний вид програмування ... замість цього ви повинні сказати, можливо, що Java є компільованою мовою програмування, а javascript - мовою програмування сценаріїв або інтерпретацією.
— Blacktiger

17

На додаток до того, що це зовсім інші мови, на мій досвід:

  • Спочатку Java виглядає приємно, пізніше це дратує.
  • Спочатку JavaScript виглядає жахливо і безнадійно, а потім поступово вам це дійсно подобається.

(Але це може мати більше спільного з моїми перевагами функціонального програмування перед програмуванням ОО ...;)


14

Все. Вони не пов’язані між собою мовами.


Удари рукою . Відповідно до wikipedia, я зобов’язаний це зробити після того, як ви мене розім’ялили і до того, як я зможу знову заговорити. en.wikipedia.org/wiki/Jinx
— ddaa

2
Ви неправильно прочитали це - я зараз можу вас вдарити. І візьми мені мою колу.
— Кірк Штраузер,

8

Вони є незалежними мовами з неспорідненими походженнями. Брендан Ейх створив Javascript спочатку в Netscape. Спочатку він називався Мокка. Вибір Javascript як назви був, якщо хочете, кивком на висхідну мову програмування Java, розроблену в Sun Патріком Нотоном, Джеймсом Гослінгом та ін. ін.


5

Як усі кажуть, вони майже абсолютно різні.

Однак якщо вам потрібна мова сценаріїв для вашої програми Java , Javascript насправді є дійсно хорошим вибором. Є способи запустити Javascript у JVM, і ви можете досить легко отримувати доступ до класів Java та маніпулювати ними.


2

Вони не мають нічого спільного між собою.

Java статично набирається, компілює та працює на власній ВМ.

Javascript динамічно набирається, інтерпретується та працює у браузері. Він також має першокласні функції та анонімні функції, чого Java не має. Він має прямий доступ до елементів веб-сторінки, що робить його корисним для обробки на стороні клієнта.

Вони також дещо схожі за синтаксисом, але це все.


2

Не плутайте з назвою ..
Java створена в Sun Microsystems (нині Oracle).
Але JavaScript був створений в Netscape (нині Mozilla) в перші дні Інтернету, і технічно "Java-Script" - це торгова марка, ліцензована від Sun Microsystems, яка використовується для опису реалізації мови Netscape. Netscape подав мову на стандартизацію до ECMA (Європейської асоціації виробників комп'ютерів), і через проблеми із товарними знаками стандартизована версія мови застрягла з незграбною назвою "ECMAScript". З тих самих міркувань щодо торговельної марки версія мови Microsoft офіційно відома як "JScript". На практиці майже всі називають мову JavaScript. Справжнє ім'я - "ECMAScript".

Обидві повністю різні мови !!!


1

Практично кожен ПК у світі продає принаймні один інтерпретатор JavaScript, встановлений на ньому.

На більшості (але не "практично на всіх") ПК встановлена ​​Java VM.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.