Статьи

В чем разница между Java и JavaScript?

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

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

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

В конечном счете, мы стремимся помочь тем из вас, кто новичок в программировании и не знает, какой язык вы хотели бы выучить (или выучить первым!). В этой статье мы рассмотрим некоторые из ключевых отличий, которые существуют в языках, и где каждый из них применим, попытка вооружить вас информацией, необходимой, чтобы помочь вам сделать следующий шаг в вашей карьере.

Возможно, лучшее, что нужно сделать, когда вы начнете различать эти два языка, это провести сравнение следующим образом:

Ява для JavaScript, как ветчина для хомяка.

К сожалению, я не могу утверждать эту аналогию как свою собственную. Вместо этого он придуман Джереми Кейтом , но он замечателен: единственное, что объединяет языки, — это то, что они разделяют имя «Java» в своем имени.

Одно из сходств состоит в том, что языки — это то, что мы называем языками в стиле C, в том, что их синтаксис похож на синтаксис языка C. То есть они оба имеют функции, скобки, скобки и точки с запятой.

Кроме этого, есть очень небольшое сходство. В оставшейся части этой статьи мы рассмотрим каждый язык на очень высоком уровне, чтобы дать вам представление о том, что предлагает каждый язык, и его особенностях.

Когда вы закончите, вы сможете увидеть разницу в двух языках, и, хотя они названы одинаково и имеют некоторый похожий синтаксис, это единственное, что у них общего.

Итак, начнем.

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

Java была задумана под идеей «пиши один раз, беги куда угодно», что означает, что ты можешь написать программу на компьютере, а затем развернуть ее на любом устройстве, имеющем среду выполнения Java.

Но подождите: что за среда выполнения Java?

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

Байт-код Java — это набор команд виртуальной машины Java. Каждый байт-код состоит из одного или, в некоторых случаях, двух байтов, которые представляют инструкцию (код операции), вместе с нулем или более байтов для передачи параметров.

Звучит менее чем захватывающе, не так ли? Это нормально! Как разработчики, мы не несем ответственности за написание байт-кода. Вместо этого компилятор Java компилирует наш код в байт-код.

Этот байт-код выполняется поверх среды выполнения, которая выполняется в контексте другой операционной системы. Эта операционная система может работать на мобильном телефоне, она может работать на другом компьютере, она может работать на Windows, OS X, Linux или любой другой системе, на которой она совместима. Вы можете прочитать все об этом на этой странице .

Звучит аккуратно, верно? Дело в том, что это не без проблем. Кажется, что это намного проще, чем есть, и это то, с чем сталкиваются более продвинутые Java-разработчики. Это выходит за рамки этой статьи. Вместо этого мы собираемся сосредоточиться на атрибутах языка, чтобы мы могли сравнить и сопоставить его с JavaScript.

Но сначала давайте рассмотрим некоторые факультеты, с которыми нам приходится работать в Java. Важно отметить, что мы работаем на гораздо более высоком уровне. Например, мы получаем работу со следующими конструкторами:

  • Классы являются основой любого объектно-ориентированного языка. Они позволяют нам определить, какие характеристики и поведение объект будет демонстрировать после его создания.
  • Функции — это части классов, которые позволяют объектам что-то делать . Класс, который представляет File может позволить нам прочитать содержимое того, что он содержит.
  • Свойства или атрибуты — это то, что описывает класс. File , например, может иметь разрешения, такие как возможность чтения или записи в файловую систему. Он также может иметь путь, указывающий, где он находится в файловой системе.
  • Наследование — это когда один класс может наследовать определенные свойства от другого класса. Это означает, что он получает все функции и свойства от родительского класса и может добавлять свои уникальные функциональные возможности.

Если вы никогда не писали код раньше, это может звучать как жаргон. Понятно так! У нас есть некоторые ресурсы, которые помогут вам узнать, что вам нужно знать:

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

Я рассмотрел JavaScript более подробно в предыдущей статье, которую вы можете прочитать здесь , но я расскажу о главных моментах, как упоминалось ранее, в этой статье. Для более глубокого погружения взгляните на то, что предусмотрено выше.

JavaScript по своей сути является динамическим языком, который не является типизированным и интерпретируется. Это означает:

  • Как разработчики, мы можем легко расширить некоторые аспекты языка, добавив наш код к уже существующим объектам, таким как объект String .
  • Нетипизированная природа языка означает, что мы можем объявлять строки, логические значения и числа (по сравнению с целыми числами, числами с плавающей запятой и десятичными числами) без необходимости явно указывать их тип, как мы делаем в Java (и других языках).
  • Язык интерпретируется, это означает, что он не скомпилирован в исполняемый файл. Вместо этого он интерпретируется веб-браузером или другим программным обеспечением на вашем компьютере, которое переводит ваши инструкции в машинный код.

Если вас что-то смущает, не волнуйтесь! Мы все были там:

  • Определение переменных?
  • Реализация функций?
  • Создание объектов?
  • Настройка условных операторов?
  • И многое другое.

Это много. Я знаю. Но приятно то, что у нас есть много ресурсов, чтобы помочь вам освоить JavaScript. И как только вы выучите нюансы языка, вам будет все легче и легче работать в его пределах.

Помните, что все «я не уверен, что я делаю», естественно, и это часть кривой обучения. Если вы никогда не видели никакого программирования, связанного с JavaScript, тогда я настоятельно рекомендую проверить пару следующих курсов:

Как только вы познакомитесь с языком, также важно использовать надлежащие инструменты для разработки ваших приложений. Это включает в себя использование таких инструментов, как отладчик (который есть в большинстве современных браузеров). Это выходит за рамки данной статьи, хотя.

Еще одно важное различие заключается в том, что JavaScript и Java считаются объектно-ориентированными языками, но по разным причинам.

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

В Java, когда вы создаете экземпляр класса, у вас есть доступ к методам и свойствам, которые вы раскрываете через определение класса. Если у вас есть открытые свойства, открытые функции и т. Д., Разработчик может их использовать.

В JavaScript, когда вы создаете переменную, объект или даже функцию, у вас есть возможность вызывать функции, которые существуют не только для этого объекта, но и для объектов, от которых данный объект получает свои свойства. Это связано с прототипной наследственной природой JavaScript, о которой вы можете прочитать подробнее в этой статье .

Как вы можете видеть из приведенного выше контента, эти два языка — хотя оба вдохновлены C в отношении их синтаксиса — очень разные. Каждый также служит своей цели.

Хотя вы можете писать JavaScript на сервере с помощью таких технологий, как Node.js, это не тот тип приложений, которые созданы на Java. Кроме того, хотя вы можете писать серверные приложения на Java, это не тот тип приложений, который вы обычно пишете на JavaScript.

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

По-видимому, каждый из этих языков предлагает свои уникальные наборы преимуществ и недостатков. Честно говоря, я думаю, что многое из того, что заставляет нас выбирать один язык перед другим, связано с тем, что мы хотим сделать, с точки зрения построения решений для себя и других.

Если вы хотите работать в Интернете, то JavaScript, вероятно, ваш лучший выбор. С другой стороны, если вы хотите писать настольные приложения, то Java — неплохой выбор.

Для тех, кто заинтересован, стоит отметить, что JavaScript стал одним из де-факто языков работы в сети. Это не без кривых обучения, и есть множество фреймворков и библиотек, которые также могут вас занять. Если вы ищете дополнительные ресурсы для обучения или использования в своей работе, посмотрите, что у нас есть на рынке Envato .

Я провожу большую часть своего времени, работая с WordPress и создавая решения на его основе; Тем не менее, я также фанат JavaScript и время от времени пишу об этом в блоге . Если вы заинтересованы в других курсах и учебных пособиях, которые я написал для Envato, посетите страницу моего профиля . Кроме того, вы можете прочитать больше статей о разработке WordPress и JavaScript в моем блоге . Не стесняйтесь и следите за мной в Твиттере на @tommcfarlin .

С учетом сказанного, пожалуйста, оставьте все отзывы в ленте комментариев ниже.

Изучите JavaScript: полное руководство

Мы создали полное руководство, которое поможет вам изучить JavaScript , независимо от того, начинаете ли вы как веб-разработчик или хотите изучать более сложные темы.