У чому різниця між 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.