Актуальные вакансии
Мы используем файлы cookie с целью персонализации сервисов и чтобы пользоваться веб-сайтом было удобнее. Продолжив работу с сайтом, вы соглашаетесь с использованием файлов cookie на условиях Пользовательского соглашения и Политики обработки персональных данных. Вы можете отказаться от использования файлов cookie, для этого измените настройки своего интернет-браузера.
Блог

Что такое JavaScript?

Примерное время чтения: 11 минут 15 секунд

Хотите всегда быть в курсе событий на рынке IT? Подписывайтесь на наш Telegram-канал!

  • Если бы не он – интерактивных веб-страниц не существовало бы как явления! Хотя он приобрел известность, как основной и главный язык frontend-разработки, сейчас его возможности намного шире – начиная от backend-частей, заканчивая полноценными приложениями SPA. На нем можно даже разрабатывать даже компьютерные игры!
    • Сегодня поговорим об одном из самых популярных языков программирования – JavaScript.

Интернет будущего: краткий экскурс в историю

Интернет прошлого – полностью статичный. Интерфейсы когда-то состояли исключительно из текстов, ссылок и, возможно, иллюстраций, а верстали его с помощью языков разметки – HTML и CSS. В какой-то момент основатель Netscape Communications решил, что различные взаимодействия с пользователем обязаны стать частью интернета будущего! Но для этого требовался относительно простой скриптовый язык, такой же легкий в освоении как HTML, а также ориентированный на дизайнеров и людей, далеких от программирования.

Как известно, спрос рождает предложение – так появился JavaScript, который был создан примерно за 10 дней! А вместе с ним кнопки, формы, поля ввода и многое другое.

Первое его название – Mocha, которое почти сразу же трансформировалось в LiveScript. Через какое-то время оно изменилось в уже привычное и знакомое нам JavaScript – это было выгодно с маркетинговой точки зрения для продвижения молодого языка (но об этом дальше). JS можно было использовать в различных браузерах, но требовались открытые стандарты этого языка. Компании Netscape и Microsoft, объединившись, создали стандарт ECMAScript, который улучшается с каждым годом.

А что такое фиксики JavaScript?

JS – это объектно-ориентированный язык программирования, поэтому все что на нем написано представлено в виде объектов.
Какие еще особенности есть у JavaScript?
  • Динамическая типизация
    Тип данные определяет только в момент, когда переменной или cons присваивают значение.
  • Гибкая работа с функциями
    JS предполагает широкую работу с функциями – кроме стандартного выполнения, можно еще возвращать функции из функций, передавать их в качестве параметров другим функциям, а также присваивать функции значения переменных.
  • Поддержка всеми современными браузерами
    (Да это просто праздник какой-то!)

Развитие JavaScript

outsourcing доход
outsourcing доход
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. Следовательно, сферы применения у языков сильно отличаются. Но как получились настолько созвучные имена? Когда JavaScript появился, Java был очень популярным языком в среде программистов. И тогда компания Netscape решила “ухватить” кусочек славы, создав ассоциацию между молодым языком и известным гигантом.


И для полного понимания – составили таблицу отличий Java от JavaScript:

Java
JavaScript
Назначение
Десктопные, серверные, встроенные программы
В основном браузерные программы
Исполнение
Везде с помощью Java Virtual Machine
Только в браузере и некоторых серверных средах
Уровень сложности
Достаточно сложный
В целом, простой
Компиляция
Компилируется
Исполняется по ходу
Где работает
Кассовые терминалы, серверные программы, приложения для Андроида
На нём работает весь интернет

Какие еще мифы про 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 Chrome
Node.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 РБК!

Читайте также

Показать еще