Что такое JavaScript?
Если бы не он – интерактивных веб-страниц не существовало бы как явления! Хотя он приобрел известность, как основной и главный язык frontend-разработки, сейчас его возможности намного шире – начиная от backend-частей, заканчивая полноценными приложениями SPA. На нем можно даже разрабатывать даже компьютерные игры! Сегодня мы в блоге ГК Selecty поговорим об одном из самых популярных языков программирования – JavaScript.
Интернет будущего: краткий экскурс в историю
Интернет прошлого – полностью статичный. Интерфейсы когда-то состояли исключительно из текстов, ссылок и, возможно, иллюстраций, а верстали его с помощью языков разметки – HTML и CSS. В какой-то момент основатель Netscape Communications решил, что различные взаимодействия с пользователем обязаны стать частью интернета будущего! Но для этого требовался относительно простой скриптовый язык, такой же легкий в освоении как HTML, а также ориентированный на дизайнеров и людей, далеких от программирования. Как известно, спрос рождает предложение – так появился JavaScript, который был создан примерно за 10 дней! А вместе с ним кнопки, формы, поля ввода и многое другое.
Первое его название – Mocha, которое почти сразу же трансформировалось в LiveScript. Через какое-то время оно изменилось в уже привычное и знакомое нам JavaScript – это было выгодно с маркетинговой точки зрения для продвижения молодого языка (но об этом дальше). JS можно было использовать в различных браузерах, но требовались открытые стандарты этого языка. Компании Netscape и Microsoft, объединившись, создали стандарт ECMAScript, который улучшается с каждым годом.
А что такое (фиксики) JavaScript?
JS – это объектно-ориентированный язык программирования, поэтому все что на нем написано представлено в виде объектов.
Какие еще особенности есть у JavaScript?
Динамическая типизация. Тип данные определяет только в момент, когда переменной или cons присваивают значение.
Гибкая работа с функциями. JS предполагает широкую работу с функциями – кроме стандартного выполнения, можно еще возвращать функции из функций, передавать их в качестве параметров другим функциям, а также присваивать функции значения переменных.
Поддержка всеми современными браузерами. (Да это просто праздник какой-то!)
Развитие JavaScript
2001 год - JSON
У JS появился формат представления данных (JavaScript Object Notation). Благодаря своей простоте формат быстро набрал популярность.
2005 год – асинхронный сдвиг
Новая тенденция поддержки фоновых запросов, позволяющих обновлять содержимое веб-страниц без их перезагрузки, привела к разработке AJAX (Asynchronous Javascript and XML).
2010 год – выпуск Express.js
Фреймворк Express.js – веб-фреймворк с минимальными необходимыми возможностями (маршрутизация, ПО промежуточного слоя, вспомогательные HTTP-механизмы) и свободой подхода к разработке веб-сервера.
2013 год – React-ивный инструмент
Была представлена новая библиотека – React – направленная на разработку интерфейсов. Сейчас она является одним из самых популярных инструментов веб-разработки.
2015 – Vue.js
Однажды сотрудник Google решил, что отсутствие готового решения для прототипирования сложных пользовательских интерфейсов веб-приложений неудобно работе. В результате получился фреймворк, пригодный как и для прототипирования, так и для полноценной работы.
JavaScript – это Java? Развенчиваем мифы
Java это такой же Javascript, как ham (ветчина) и hamster (хомяк). Об их отличиях можно сказать коротко – это просто разные языки. Работают они тоже по-разному. JavaScript – это язык скриптов или небольших программ, которые отвечают за определенное действие. Java же намного сложнее и тяжелее – его невозможно использовать в браузере. Зона его применения – серверные приложения, игры, банковские системы и программы для Big Data. Следовательно, сферы применения у языков сильно отличаются. Но как получились настолько созвучные имена?
И для полного понимания – составили таблицу отличий Java от JavaScript:
Какие еще мифы про JavaScript существуют?
JavaScript игрушечный язык
Схожие названия породили еще один миф – вокруг языка до сих пор витает орел “игрушечности”. «Script» в названии языка создает обманчивое впечатление, что это урезанная версия Java. Это не так: язык не только не копирует функционал Java, но и имеет собственные «фичи», влияющие на другие языки.
JavaScript полон багов и недоработок
Такие проблемы уже давно в прошлом. Поставщики браузеров придерживаются единого стандарта ECMAScript, и проблемы, связанные именно с JavaScript, встречаются редко.
JavaScript не объектно-ориентированный язык
Путаница возникает, потому что Javascript не использует привычные способы организации объектов. Отсутствие ключевого слово «class» вводит в заблуждение, будто язык – функциональный, но это не так.
JavaScript есть только в браузерах
Большинство людей используют Javascript в качестве языка встроенного в браузер, но его можно найти и в других местах. Хотя JavaScript пока и правда не имеет полноценной серверной реализации.
Главные фреймворки для JavaScript
Фреймворки – необходимый элемент современной веб-разработки. Они упрощают жизнь любого разработчика и позволяют не кодить каждую повторяющуюся функцию с нуля, что влияет на качество конечного продукта. Какие фреймворки JavaScript самые популярные на сегодняшний день? Мы составили собственный топ:
React JS
Лидер нашего топа! Используют его чаще всего для интерфейсов, с ним они получаются почти идеальными. А из-за "дружбы" с SEO его полюбили разработчики сайтов.
Из минусов – в нем нет комплектности, поэтому, параллельно приходится использовать и другие фреймворки.
Angular
Главное отличие фреймворка - возможность передавать информацию с сервера прямо в браузер. А чистота итогового кода вообще сделала его лучшим в 2022 году!
Из минусов – более сложная структура и процедура изучения, что компенсируется большим количеством возможностей.
Vue JS
Второй по востребованности фреймворк. Он прост в изучении, при этом подходит как для сайтов, так и ПО. А еще с его помощью можно создавать SPA. Достоинство Vue - возможность просто и быстро исправлять ошибки, а еще в него встроен инструмент для работы с анимациями.
Из минусов – языковой барьер и отсутствие основных плагинов.
Ember JS
Популярный фреймворк с открытым кодом. Он известен среди разработчиков интерфейсов всех видов – мобильных, настолько и в веб. Еще он может похвастаться количеством дополнений, которых уже больше 1500, а также бесперебойной поддержкой URL адресов и минимальным размером DOM.
Из минусов – проблемы в изучении из-за сложной структуры и низкая скорость, которая не подходит для “горящих” проектов.
Jest
Этот фреймворк - среда для тестирования кода на JS. Его сила - в простоте. А еще он интегрируется с Babel, TypeScript, Node, React, Angular, Vue и не только.
Фреймворк позволяет писать тесты с приемлемым, знакомым и функциональным API для достижения желаемых результатов.
JavaScript уже не только для фронтенда? Встречайте, Node.JS
Node – это серверная платформа на движке V8 для работы с JS. С ее помощью можно написать серверный код для веб-приложений и динамических страниц. По сути, это приложение на C++, которое получает на входе код JavaScript и выполняет его. JS-код в среде Node может быть быстрее чем аналогичный код в Ruby или Phyton. Однако, на практике разработка на чистом Node не ведется.
Node.JS лежит в основе Internet of Things. С его помощью можно создавать серверы для обработки большого потока запросов одновременно. А еще эта особенность платформы позволяет использовать ее там, где нужен постоянный обмен информацией с пользователем – в соцсетях, онлайн-играх, чатах.
У Node есть свои фреймворки. Например, Express. Он работает внутри среды Node и имеет, например, готовые функции обработки HTTP запросов, причем для каждого HTTP метода имеется своя функция, что особенно удобно при создании REST API. И это далеко не единственная причина использования Express.
И даже десктопные приложения умеет: все об Electron
Electron – это фреймворк для создания кроссплатформенных настольных приложений от GitHub. Он включает в себя три базовые веб-технологиии – JavaScript, HTML и CSS. В основе Electrone - Chromium и Node.js, объединенные в одну среду для работы приложений. Это позволяет веб-разработчикам попробовать свои силы в создании десктопных приложений без изучения новых технологий.
Electron - серьезный проект с помощью которого создали, например, Discord, Figma или Trello. Но это еще не все – на его "счету" более 700 приложений!
Архитектура фреймворка включает в себя три основных компонента:
- Libchromiumcontent — это библиотека рендеринга Chromium, которая является основой с открытым исходным кодом для браузера Google
- ChromeNode.JS — это среда выполнения JavaScript с открытым исходным кодомJavaScript-движок
- V8 — движок JavaScript с открытым исходным кодом, разработанным Google, написанным на C++ и JavaScript
Когда использовать, а когда нет?
Разработка на Electron имеет наибольший смысл при создании многоплатформенных настольных приложений, которым не нужно придерживаться строгих требований к использованию памяти и подчеркивать дизайн UX и UI. Однако, сейчас считается, что фреймворк не подходит для создания простых приложений. Это связано с тем, что Node.js может потреблять значительный объем памяти из-за своих особенностей.
Какие инструменты нужны
- Electron — устанавливает готовые двоичные файлы Electron для использования в командной строке с помощью npm.
- Электронная компиляция — использует ES2015, CoffeeScript, LESS, SCSS в вашем приложении без этапа предварительной компиляции.
- Electron-packager — упаковывает файлы и распространяет их в вашем приложении.
- Devtron — это официальное расширение DevTools.
- Spectron — тестирует приложения Electron с помощью ChromeDriver.
Есть ли альтернативы?
NW.js – дает разработчикам свободу выбора фреймворков и инструментов, позволяет вызывать модули Node.js непосредственно из DOM.
Meteor – не создает приложения сам по себе, требует его нужно использовать с Cordova или подобными инструментами.
Proton Native – использует тот же синтаксис, что и React Native и работает с Redux и совместим с Node.js.
А что в итоге? Стоит ли учить?
Конечно же, стоит, если вас интересует frontend-разработка. JavaScript прошел большой путь развития и сейчас является главным инструментом в веб-разработке. И, кажется, не собирается сдавать своих позиций. К тому же, сейчас он актуален не только для frontend-разработки, но и для backend, что делает язык еще более перспективным для изучения.
А если вы уже является специалистом по JavaScript – специалисты по рекрутингу ГК Selecty будут рады предложить вам отличные варианты новой работы. Мы сотрудничаем с самыми сильными компаниями на рынке из рейтинга 500 РБК!