Найти в Дзене
IT notes

Краткий обзор языка программирования JavaScript

О да, JavaScript! До начала обзора сразу скажу — MUST HAVE! Знать его просто обязан любой программист. Это как английский язык — если он не первый, то обязательно должен быть вторым. Почему? Да очень просто — это самый универсальный язык программирования на текущий момент! На нём можно делать практически всё! Как и Java его смело можно назвать классикой в самых лучших смыслах, но, несмотря на сходство в названии, JavaScript — это нечто совершенно иное, нечто особенное и непохожее ни на что более. Говоря о JavaScript, у меня всегда возникает одна и та же аналогия с пластилином. То есть JavaScript — это что-то на чём можно лепить программы с минимальным количеством ограничений. Это и преимущество и проклятье одновременно, т.к. за такую гибкость приходится расплачиваться склонностью языка к образованию спагетти кода. Или, проще говоря, наговнокодить в нём можно легко и непринуждённо даже достаточно опытным программистам. Риск написания кривого и безструктурного кода резко возрастает с увеличением объёмов проекта.

Итак, для чего используется JavaScript? Тут легче сказать для чего он не используется... Но всё же, основным его использованием является, так называемая, frontend разработка, а именно, все те программы, что работают прямо у вас в браузере. Браузер, собственно, и является, той средой, которая запускает программы на JavaScript. В чём-то тут есть сходство с принципами JVM (см. Java). То есть в любой момент можно войти в режим разработчика в вашем любимом браузере и посмотреть какие JavaScript скрипты выполняются. Можно даже поотлаживать их по шагам в режиме отладки. Да, часто эти скрипты преобразовывают таким образом, чтобы отладку и просмотр скриптов было сделать крайне проблематично, но, тем не менее, это возможно. Также вы можете открыть консоль браузера, написать и запустить программу на JavaScript прямо там (F12).

Естественными спутниками JavaScript frontend разработки являются язык разметки страниц html и язык стилей css, а также 100500 фреймворков различных мастей, то есть наборов некоего инструментария и программных библиотек, которые позволяют более быстро и более структурировано создавать реальные программы. С точки зрения популярности и востребованности на текущий момент, пожалуй, можно выделить ReactJS, AngularJS и vue.js.

Помимо исторического стандарта написания Web UI, коим сейчас является JavaScript, активно набирают популярность более структурированные и типизированные языки, типа TypeScript, которые, в свою очередь, всё равно предварительно компилируются в JavaScript, и только потом запускаются. К слову сказать, в JavaScript можно скомпилировать программу практически из любого языка программирования. Гибкость JavaScript это позволяет!

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

Где же ещё применяется JavaScript? Помимо frontend на JavaScript можно писать backend приложения, тем самым используя JavaScript для написания всех компонентов стандартного web приложения (ну, разве что кроме баз данных, но это совсем отдельная тема для отдельных обзоров). Для написания backend приложений на JavaScript используют среду под названием node.js. То есть это то, что вместо браузера будет воспроизводить ваши программы на удалённых серверах, ну, или на вашем локальном компьютере. Но на мой субъективный взгляд разработка backend приложений на JavaScript может быть оправдана только в том случае, если вы ходите использовать для написание всех компонентов системы универсального JavaScript разработчика и у вас нет возможности использовать, скажем, Java разработчика и разработчика Golang. Но в общем и целом JavaScript для написания backend приложений вполне себе пригоден, хотя, это не всегда оптимальное решение (внимание, тут место для холивара).

А ещё? А ещё есть масса инструментов, позволяющих на JavaScript+html+css писать мультиплатформенные приложения, которые смогут работать и на Android, и на IOS, и на других платформах. Прежде всего, речь идёт о приложениях, имеющих графический интерфейс пользователя (GUI) а также о создании игр, не слишком требовательных к производительности графической подсистемы.

На вопрос нужно ли учить JavaScript я уже ответил в начале обзора — однозначно ДА. Но учтите, что хотя он и прост в освоении для начинающих, он очень коварен при реализации реальных крупных проектов. И несмотря на свою универсальность, процесс разработки frontend, backend и мобильных приложений существенно различаются. При этом, как правило, используются совершенно различные фреймворки и подходы, каждый из которых требует отдельного изучения, не говоря уже, о необходимости изучения html + css, а также отдельного инструментария по автоматизации сборки проекта.

Пока всё.

Смотрите мои обзоры других языков программирования.