Java и JavaScript: в чём разница?

Корот­кий ответ: Java и JavaScript — это про­сто раз­ные язы­ки, кото­рые исполь­зу­ют­ся для раз­ных целей. Похо­жие назва­ния — про­сто исто­ри­че­ское недоразумение.

Java — это серьёз­ный объ­ект­но ори­ен­ти­ро­ван­ный язык, на кото­ром пишут сер­вер­ный софт, про­грам­мы для ком­пью­те­ров и мобиль­ные при­ло­же­ния. Он инте­ре­сен тем, что один и тот же код мож­но ском­пи­ли­ро­вать под мно­же­ство раз­ных плат­форм. Java — один из основ­ных язы­ков для раз­ра­бот­ки под Android. Читай­те о Java подроб­нее у нас.

JavaScript — это язык для управ­ле­ния веб-страницами в бра­у­зе­ре. Он испол­ня­ет­ся толь­ко в бра­у­зе­ре, может кра­сить эле­мен­ты на стра­ни­це в раз­ные цве­та, рисо­вать интер­фей­сы, пулять­ся дан­ны­ми, но всё — в браузере.

На JavaScript мож­но писать и при­ло­же­ния, и даже деск­топ­ные про­грам­мы. Но это тре­бу­ет огром­но­го внеш­не­го обве­са, мы не реко­мен­ду­ем. Зато реко­мен­ду­ем прой­ти тест на зна­ние JavaScript.

Java JavaScript

Для деск­топ­ных, сер­вер­ных и встро­ен­ных программ 

Для бра­у­зер­ных программ 

Испол­ня­ет­ся на любом желе­зе, для кото­ро­го есть Java Virtual Machine 

Испол­ня­ет­ся толь­ко в бра­у­зе­ре и в неко­то­рых сер­вер­ных средах 

Слож­но­ват 

Про­стой, но с нюансами 

Ком­пи­ли­ру­ет­ся 

Испол­ня­ет­ся на лету 

На нём рабо­та­ют кас­со­вые тер­ми­на­лы, сер­вер­ные про­грам­мы, при­ло­же­ния для Андроида 

На нём рабо­та­ет весь интернет 

Что изучать?

Java — это такой про­мыш­лен­ный язык. На нём рабо­та­ют тер­ми­на­лы опла­ты, умные устрой­ства, огром­ные сер­вер­ные систе­мы. Мир пот­ных инже­не­ров, сер­вер­ных ком­нат и финан­со­вых рын­ков. Если хоти­те, что­бы у вас была рабо­та по под­держ­ке и совер­шен­ство­ва­нию все­го это­го хозяй­ства на мно­го лет впе­рёд — вам сюда.

JavaScript — это в первую оче­редь язык для веба. На нём мож­но очень быст­ро напи­сать про­стое веб-приложение, быст­ро его рас­про­стра­нить, быст­ро зара­бо­тать денег. Если вам нуж­но мно­го неболь­шой рабо­ты пря­мо сей­час или вы хоти­те запус­кать соб­ствен­ные веб-приложения как пред­при­ни­ма­тель, начи­най­те с JavaScript.

И не забы­вай­те, что мож­но пере­хо­дить с одно­го язы­ка на дру­гой. Не ска­зать, что пере­ход с JavaScript на Java будет про­стым, но это выполнимо.

Нельзя ли подробнее?

Исто­рия Java и JavaScript в общих чер­тах выгля­дит так.

Нача­ло девя­но­стых. В ком­па­нии Sun Microsystems пилят язык про­грам­ми­ро­ва­ния, кото­рый мож­но будет исполь­зо­вать для умных устройств — теле­при­ста­вок, холо­диль­ни­ков и вся­ко­го тако­го. Зада­ча была при­ду­мать такую систе­му, что­бы код писал­ся один раз, а испол­нять его мож­но было бы на раз­ном желе­зе. В 1995 году выхо­дят пер­вые вер­сии это­го язы­ка, он назы­ва­ет­ся Java.

Парал­лель­но с этим в дру­гой обла­сти идёт вой­на бра­у­зе­ров. Тех­но­ло­гии веба ещё очень сла­бые, пло­хо стан­дар­ти­зи­ро­ван­ные, HTML ещё мало что уме­ет, дизай­на мало. В ходу несколь­ко бра­у­зе­ров, каж­дый из кото­рых рису­ет веб-страницы по-своему. Один из этих бра­у­зе­ров — Netscape Navigator.

Созда­те­ли Netscape Navigator меч­та­ют, что­бы бра­у­зе­ры уме­ли кра­си­во себя вести; что­бы там был интер­ак­тив и ани­ма­ции; что­бы в бра­у­зе­ре мож­но было запус­кать про­грам­мы и делать хотя бы про­стые вещи (а не толь­ко читать). И они раз­ра­ба­ты­ва­ют тех­но­ло­гию Mocha — язык скрип­то­ва­ния, кото­рый умел рабо­тать напря­мую с веб-страницей. В те вре­ме­на это было ново и интересно.

Сло­во за сло­во, Netscape вхо­дит в состав Sun Microsystems, и в поры­ве мар­ке­тин­го­во­го кре­а­ти­ва язык Mocha пере­име­но­вы­ва­ют в JavaScript, что­бы попи­а­рить одно на дру­гом. Яко­бы JavaScript — это ком­па­ньон Java для веба (хотя раз­ра­ба­ты­ва­ли JavaScript совсем дру­гие люди и с дру­ги­ми задачами).

Пиар не зашёл. Лет пять раз­ра­бот­чи­ки пле­ва­лись из-за кажу­щей­ся кри­виз­ны JavaScript и обще­го раз­ла­да в веб-технологиях. Уже позд­нее, в двух­ты­сяч­ных, нача­лась бес­ком­про­мисс­ная стан­дар­ти­за­ция веб-технологий (огнём и мечом), и всё посте­пен­но нала­ди­лось. Но оса­до­чек остался.

А похо­жие назва­ния язы­ков — это то, что быва­ет, когда мар­ке­то­ло­гов пус­ка­ют в про­грам­ми­ро­ва­ние. Не надо так.