Чем Java отличается от JavaScript
Java и JavaScript — разные языки, у них разные создатели, правила и области применения. Общего у них в основном название и похожие на язык C фигурные скобки. Название JavaScript в 1995 году выбрали ради популярности, которую тогда набирала Java, — по сути это рекламный ход.
Главные отличия
| Java | JavaScript | |
|---|---|---|
| Где работает | на серверах, в Android, в настольных программах | в браузере на страницах сайтов и на серверах через Node.js |
| Как запускается | компилируется в байт-код, его выполняет JVM | выполняется браузером или Node.js прямо из текста программы |
| Типы | статические: тип переменной известен при компиляции и не меняется | динамические: в переменной может оказаться что угодно |
| Устройство программы | всё внутри классов, есть main | команды можно писать прямо в файле, классы не обязательны |
| Создатели | Sun Microsystems, Джеймс Гослинг | Netscape, Брендан Эйх |
Одна и та же программа
На Java:
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum += i;
}
System.out.println("Сумма: " + sum);
}
}Сумма: 15На JavaScript:
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
}
console.log("Сумма: " + sum);Сумма: 15Циклы и условия выглядят почти одинаково — оба языка взяли их у C. Но в Java тип int указан явно, а программа обёрнута в класс и метод main. В JavaScript let объявляет переменную без типа, а код выполняется сверху вниз без всякой обёртки.
Разница в типах заметна сразу. В Java строка int x = "5"; не скомпилируется: в целое число нельзя положить строку. В JavaScript let x = "5"; и потом x = 5; — нормально, а "5" * 2 даже даст 10: язык сам переведёт строку в число.
Какой учить
- Java — если интересны серверы, крупные программы для компаний, приложения для Android или если язык требуется в университете. Явные типы поначалу кажутся лишней работой, но приучают к аккуратности, и ошибки компилятор находит ещё до запуска.
- JavaScript — если интересны сайты: без него не обходится ни одна интерактивная страница. Первый результат виден быстрее — достаточно браузера.
Знание одного языка помогает учить второй: циклы, условия, функции и объекты есть в обоих. Курс JavaScript — в теме JavaScript.
Подводные камни
- Ищите учебные материалы с правильным названием: ответ про JavaScript не поможет с Java, и наоборот.
- Kotlin ближе к Java, чем JavaScript: он работает на той же виртуальной машине JVM и может вызывать код на Java. О нём — тема Kotlin.