У 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 должна иметь больше шансов, учитывая это:
- требует относительно простых изменений в движках JavaScript
- не потребуется плагин для браузера, и
- поддерживается 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, и вы не ошибетесь.