Статьи

JavaScript: 2015 в обзоре

У JavaScript был замечательный год. Несмотря на то, что в мае исполнилось двадцать лет, новости, проекты и интерес к языку продолжают расти в геометрической прогрессии. Возможно, это странные круги, в которые я вхожу, но я не могу вспомнить другую технологию, которая движется с такой же скоростью. Следить за этим становится все труднее, поэтому я надеюсь, что это резюме поможет …

ECMAScript перевернул

Семилетнее ожидание ECMAScript Harmony или ECMAScript 6.0 закончилось в июне 2015 года с официально завершенной спецификацией .

ES6 был быстро переименован в ES2015, хотя я не знаю никого, кто бы так его называл. Предпосылка для смены имени хороша; 2015 год был годом завершения спецификации. Движки JavaScript теперь могут утверждать, что они полностью соответствуют ES2015, и все это понимают. К сожалению, маркетинговым типам это не понравится; никто не собирается претендовать на совместимость с ES2015 с 1 января 2016 года, когда это звучит устарело.

Что значит ES2015 для разработчиков? Приготовьтесь к таким удовольствиям, как:

  • классы
  • расширенные объектные литералы
  • пусть и const
  • функции стрелок
  • строки шаблона
  • итераторы
  • генераторы
  • деструктурирующий
  • прокси
  • слабая карта и слабая
  • символы
  • обещания
  • отражение

Во многом это синтаксический сахар. Например, JavaScript сохранит наследование прототипа, но предложит классические структуры class подобные наследованию, для тех разработчиков стонов, которые переходят с других языков.

Поддержка ES2015 остается нестабильной, но можно преобразовать большую часть кода в ES5 с помощью транспилятора, такого как Babel . Это хорошо работает, но этот дополнительный шаг может усложнить тестирование и отладку. Лично я JavaScript Luddite, который предпочитает придерживаться старых способов, пока поддержка не улучшится.

Но пока забудьте о ES2015 — давайте перейдем к ES7 / 2016!

Ассамблея Мстителей JavaScript

Hype достигла апогея в июне с объявлением WebAssembly; низкоуровневый бинарно-подобный ассемблерный язык для Интернета!

Доставка больших приложений в браузер не всегда практична. Для игры или сложной программы может потребоваться много мегабайт исходного кода, который загружается, компилируется в байт-код и в конечном итоге запускается как машинный код. WebAssembly делает процесс более эффективным, компилируя исходный код в более простой, более быстрый, совместимый с ядром JavaScript байт-код и упаковывая его в компактный двоичный файл. Поэтому код браузера будет загружаться и запускаться быстрее. Он не обязательно будет работать быстрее, чем обычный JavaScript, но возможны оптимизации.

Мы посетили бинарную землю раньше. Flash, Silverlight, Java и собственный клиент Google (NaCl) дали аналогичные обещания, но WebAssembly должна иметь больше шансов, учитывая это:

  1. требует относительно простых изменений в движках JavaScript
  2. не потребуется плагин для браузера, и
  3. поддерживается Google, Microsoft, Mozilla и Apple.

В восторге? Вам лучше освежить свои навыки C / C ++, потому что это цель для первых компиляторов WebAssembly.

Node.js Forks Off

Node.js перешел из относительно нишевой среды выполнения в 2014 году в обязательную технологию 2015 года. Node.js повсюду; ваш рабочий стол, ваш сервер, ваш Raspberry Pi, ваши встроенные устройства и многое другое. Даже разработчики из других конфессий используют Node.js для использования инструментов сборки, таких как Grunt и Gulp.

В 2015 году политические ссоры вокруг Node закончились слиянием форка io.js. Это означало, что Node.js v0.12 может быть заменен Node.js v4.0 в сентябре. Да, это скачок трех целых версий, потому что io.js достиг версии 3.0 и не мог вернуться назад.

Конечно, номера версий ничего не значат… кроме тех, кто думает, что Node.js 4+ более продвинут, чем Ruby 2 и Python 3. Учитывая, что v5 появился месяцем позже, он также обогнал .NET 4 и быстро перехватывает PHP 7!

Рамочная усталость

В 2015 году было запущено 2269 новых JavaScript-фреймворков. Я придумал это число без каких-либо исследований, но мало кто усомнится в этом. Сложно отследить …

  • AngularJS остается популярным, но его использование, возможно, пошло на убыль, поскольку нет пути обновления до версии 2.0, когда он будет запущен в 2016 году
  • Реакция вызывает сильный интерес
  • Meteor обещает полную стековую изоморфную платформу приложений JavaScript
  • Vue.js достиг версии 1.0 и Aurelia была запущена
  • Ember , Knockout и Backbone.js по-прежнему сильны
  • некоторые, такие как Рендр , выглядели так, будто стали популярными, но не стали.

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

Используйте структуру, если вы должны, но никогда не предполагаете, что она жизнеспособна в долгосрочной перспективе. Новые и лучшие альтернативы появятся до того, как вы пройдете половину своего проекта. Никогда не забывайте, что фреймворки являются опцией — вам не нужно их использовать . Меньшие, проворные проекты с минимальными зависимостями — более безопасная ставка.

Инструменты Приливно-волновая

Вы помните беззаботные дни, когда веб-разработке требовались только браузер, текстовый редактор и FTP-клиент? Сегодня вам нужны Node.js, Gulp / Grunt, git, статические генераторы HTML, компиляторы Sass, Autoprefixer, минификаторы, углификаторы, линтеры, BrowserSync и ряд других инструментов сборки для создания базовой страницы «Hello World» .

Это в основном хорошо. Мы разрабатываем все более сложные веб-приложения, и инструменты позволяют нам автоматизировать повседневные процессы и сосредоточиться на более интересных сложных моментах. 2015 год был отличным для:

  • Atom 1.0 — взломанный редактор GitHub на основе Node.js, был запущен в июне
  • PostCSS — быстрый, модульный CSS-процессор получает, получает мою награду за инструмент года
  • множество новых браузеров, включая Edge и Vivaldi, а также множество улучшений для разработчиков.

Тем не менее, несмотря на все эти бесплатные инструменты оптимизации, средняя веб-страница весит более 2 МБ и состоит из ста отдельных файлов. Это прогресс? Возможно, нет, если вы читаете книгу Клинта Финли « Я выключил JavaScript на целую неделю, и это было великолепно» . Это не вина технологии, а ее реализация. Отключение JavaScript блокирует рекламу, всплывающие окна, модальные диалоговые окна, бесконечно прокручивающиеся страницы, приглашения в социальных сетях, сообщения для рассылок и другие раздражающие посты, которые мы считаем жизненно важными на веб-страницах.

Некоторые компании надеются остановить гниение веб-страниц с помощью таких альтернатив, как Facebook Instant и Google Accelerated Mobile Pages . Я не уверен, что отдельный нестандартный веб — это ответ.

И наконец

Официально: Node.js лучше, чем PHP ! Следует признать, что статья не претендует на это, но показывает, как далеко продвинулся Node.js. Возможно, теперь PHP победил бы, учитывая увеличение скорости версии 7, но, в конечном счете, используйте то, что вам удобно. Спорно, Otomettik , недавно преобразовал свой WordPress.com переднего конца от PHP для Node.js , но я подозреваю , что больше говорит о состоянии проекта Calypso , чем языки.

Техническое модное слово 2015 года было «изоморфным» . SitePoint обсудил это и предоставил пример кода, но, по сути, это означает, что код JavaScript, который вы пишете однажды, работает где угодно — в браузере или на сервере. Это относительно просто для небольших автономных утилит, но быстро усложняется.

Первая альфа- версия jQuery 3.0 была выпущена в июле . Обещаны две новые версии; один для современных браузеров и версия Compat, которая включает поддержку IE8. Команда ожидает несколько серьезных изменений, что является значительным достижением.

В декабре Mozilla объявила о том, что прекратит продавать смартфоны на базе ОС Firefox с поддержкой JavaScript . Это не конец для Firefox OS — разработка продолжается, и она используется в некоторых Smart TV — но знаки не хороши. Возможно, лучше сделать ставку на автономные веб-приложения, не зависящие от ОС?

Крупнейшие корпоративные JavaScript-сюрпризы 2015 года пришли от Microsoft с:

  • Visual Studio Code , новый кроссплатформенный расширяемый Sublime Text / Atom-подобный редактор
  • vorlon.js , инструмент удаленной отладки и тестирования с открытым исходным кодом, и
  • Чакра, движок Edge JavaScript, стал открытым .

Учитывая недавнюю открытость в Интернете, возможно, нам следует называть компанию «новой Microsoft»?

Прогноз на 2016 год

Отношение к JavaScript изменилось. Несколько лет назад его (несправедливо) высмеивали как непонятный, глючный язык сценариев, которого избегали настоящие разработчики. Сегодня нельзя обойтись без языка, и в 2016 году продолжится рост инструментов, рамок и проектов.

Нелегко идти в ногу, но верните JavaScript, и вы не ошибетесь.