|
@@ -11,42 +11,42 @@ JavaScript появился в далёкие девяностые, когда
|
|
|
|
|
|
А ещё Netscape договорилась с Sun Microsystems, чтобы язык считался «младшим братом» Java для браузеров. Так появилось название JavaScript — не потому, что языки сильно похожи, а потому, что Java тогда был на хайпе. В общем, во всём вините маркетологов
|
|
|
|
|
|
-# Пишем первую программу
|
|
|
+## Пишем первую программу
|
|
|
|
|
|
Для начала небольшой ликбез. Все языки программирования делятся на **компилируемые** и **интерпретируемые**. Чтобы запустить программу, написанную на компилируемом языке, код предварительно прогоняют через компилятор. А вот код на интерпретируемом языке прогонять не надо — передал интерпретатору, и тот его сразу же исполняет.
|
|
|
|
|
|
JavaScript относится ко второму типу языков. С одной стороны, это удобно — меньше мороки и рутины, больше творчества. С другой — без интерпретатора он просто не запустится. К счастью, все современные веб-браузеры дружат c JavaScript.
|
|
|
|
|
|
-# Где ещё нужен JavaScript
|
|
|
+## Где ещё нужен JavaScript
|
|
|
|
|
|
JavaScript — это серьёзный и мощный язык, на котором можно не только красивые анимации рисовать, но и писать сложные программы для бизнеса.
|
|
|
-# Веб-приложения
|
|
|
+## Веб-приложения
|
|
|
Возьмём, к примеру, «Google Документы». Вспомните, как много там функций: можно менять шрифт, выравнивать абзацы, вставлять картинки. Без JavaScript нам бы пришлось перезагружать страницу после каждого действия — проще плюнуть и уйти в Word. А так у нас есть удобная облачная альтернатива.
|
|
|
-# Бэкенд
|
|
|
+## Бэкенд
|
|
|
JavaScript умеет запускаться на сервере и может быть полноценным бэкенд-языком — как Python, С# и Java. Подключаем к нему специальный движок Node.js, и можно писать вообще что угодно: чаты, соцсети, компьютерные программы и так далее. В Netflix, например, пишут на нём и серверную логику, и интерфейс.
|
|
|
-# Расширения для браузера
|
|
|
+## Расширения для браузера
|
|
|
Расширения — это простые скрипты, которые добавляют в браузер новые функции. Они умеют блокировать рекламу, делать скриншоты, обходить блокировки сайтов (мы этого не говорили). Все расширения пишут на JavaScript — достаточно выучить его, и расширяйте сколько вздумается.
|
|
|
-# Мобильные приложения
|
|
|
+## Мобильные приложения
|
|
|
Допустим, вы работаете тимлидом в небольшой IT-компании, создаёте облачное хранилище. Однажды к вам приходит продакт-менеджер и требует приложение для Android — чтобы клиенты могли заходить в хранилище с телефона. А у вас вообще-то стартап, и денег на Android-разработчика нет.
|
|
|
|
|
|
Можно пойти сложным путём и обучить команду программировать на Kotlin. А можно схитрить и попросить фронтендера написать программу на JavaScript. Потом просто компилируете её под Android с помощью React Native и получаете нативное приложение.
|
|
|
-# Игры
|
|
|
+## Игры
|
|
|
Помните динозаврика из Google Chrome? Который прыгает через кактусы, если пропал интернет. Вы тоже можете написать такого на JavaScript, и ещё много других простых игрушек: гонок, бродилок, головоломок, стратегий и так далее.
|
|
|
-# Чем JavaScript отличается от Java
|
|
|
+## Чем JavaScript отличается от Java
|
|
|
Многие начинающие разработчики думают, что Java и JavaScript — родственники. Мол, сначала нужно выучить Джаву, а придачу к ней ещё Скрипт, и дело в шляпе. На самом деле это совсем разные языки — они по-разному устроены и используются для разных задач.
|
|
|
-# Типизация
|
|
|
+## Типизация
|
|
|
В любом компьютерном языке есть типы данных: строки, числа, символы и так далее. Но каждый язык по-разному себя с ними ведёт — это называется **типизацией**. В языках вроде Java она **статическая** — если мы вводим числовую переменную, нужно сначала задать её тип. Компьютер смотрит на тип и понимает: сейчас будет математика.
|
|
|
|
|
|
А в JavaScript типизация **динамическая**, поэтому типы задавать не нужно. С одной стороны, свобода, а с другой — возможны разные аномалии. Например, у JavaScript можно спросить, что больше — банан или 150, и получить ответ.
|
|
|
-# Компиляция
|
|
|
+## Компиляция
|
|
|
В отличие от JavaScript, Java — это компилируемый язык. Перед тем как запустить Java-код, его нужно скомпилировать — то есть перевести на машинный язык. Зато потом, когда мы кликнем на иконку программы, код сразу начнёт выполняться. При повторном запуске ничего компилировать не нужно.
|
|
|
|
|
|
Скрипты же сначала перехватывает интерпретатор, который делает примерно то же самое, но в режиме реального времени. То есть при каждом запуске скрипта код JavaScript переводится в машинный.
|
|
|
-# Применение
|
|
|
+## Применение
|
|
|
Магия языка Java — в его виртуальной машине (JVM). Виртуальная машина позволяет запускать код на любом устройстве, где она установлена. Удалось запустить машину — запустится и программа. Поэтому на Java удобно писать софт для самых разных устройств: серверов, компьютеров, смартфонов, банкоматов и даже роботов.
|
|
|
|
|
|
У JavaScript совсем другая задача — управлять элементами страницы. Можно написать полезный скрипт и добавить функций на сайт. А если ещё освоить Node.js, то вообще никакой другой язык не нужен — можно хоть розетку запрограммировать.
|
|
|
-# Что легче учить
|
|
|
+## Что легче учить
|
|
|
Короткий ответ — JavaScript. Чтобы написать первый скрипт, не нужно тратить время на установку виртуальной машины и разбираться в типах данных. А из инструментов понадобятся лишь блокнот и браузер. Выбирайте его, если вы совсем новичок и хотите быстро вкатиться в разработку.
|
|
|
|
|
|
С Java на первых порах придётся попотеть, зато потом вы сможете запускать сложные системы. А ещё с Java легко перейти на другие языки — Kotlin или C#.
|