Итоги 2019
от CSSSR

Преображение фронтенда в 2019

Пролог

Живу один в сталинке в ЦАО. Звукоизоляция от внешнего мира потрясающая, ибо стены из кирпича больше метра толщиной (где снаружи пилястры идут — больше полутора). От соседей звукоизоляция так себе, но это компенсируется их малой активностью, доходящей до незаметности. Неважно. Не суть.

image

Часто я сижу в полнейшей тишине такого масштаба, что начинает казаться, что на десятки метров вокруг меня нет ничего живого в доме. Совершенная, абсолютная, полная тишина. Я выключаю свет, зажигаю свечи в канделябрах моего дореволюционного Мюльбаха и в густом бархатном охристом полумраке играю на гитаре, импровизируя в недобрых модальных ладах с недобрыми интервалами. Ощущения охуенные, чувствую себя мамкиным Эрихом Цанном. А если серьезно, тишина и общий антураж таковы, что реально ощущение, будто за окном Москва 1919-го, и как раз только что Осоргина посадили в корабль смерти, а кого-то ведут под Варсонофьевский гараж.

И в этой циклопической, почти хтонической тишине, в ставшей уже аметистовой комнате, ты видишь его...

10 лет немого крика...

...кажется, подходят к концу. Всё началось в мае 2009 года с первым релизом Ноды, потом через год релиз AngularJS, потом были knockout, meteor и backbone. Наконец релиз React в мае 2013-го. Рывок JavaScript от jQuery до полноценных фреймворков оказался таким сильным, что в тот момент в сознании IT-индустрии появилось понятие «фронтенд разработка».

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

Всё JavaScript

10 лет насмешек над «снежинками» и «наследование не на классах? Ха-ха», «вот так просто взять и создать объект? Умора!».

Но что мы имеем сейчас? Всё JavaScript. Не только веб-интерфейсы. Игровые тоже, и это не «индюшатина», а Battlefield. Electron и React Native — для устройств. Даже TensorFlow имеет порт на JavaScript.

Посмотрите на ТОП-50 гитхаба. JavaScript стал символом опенсорс-разработки, раскатистым гимном того, что программирование доступно каждому пользователю Интернета.

На этом, думаю, с ретроспективой покончено. Самое время перейти к «широко известным в узких кругах» событиям, не вошедшим в новогодний хит-парад подкаста «Новости 512».

Deno

image

Это новый (альтернативный?) виток эволюции Node, за авторством всё того же Райана Дала.

Помните скандал c event-stream в ноябре прошлого года? Тогда малварь утекла на тысячи машин. Возможность достучаться к файловой системе — ахиллесова пята Node.

В отличие от Node, Deno, по умолчанию, выполняет код в «песочнице». Это означает, что у среды выполнения нет возможности выполнить «посторонние» скрипты или работать с файловой системой. (На самом деле доступ есть и к файловой системе, и переменным окружения, но для этого нужно передать специальные ключи)

Вторая киллер фича — TypeScript из коробки, никаких конфигов, никаких лоадеров. По сути получается, что Deno — это рантайм для TS.

Мультиязычность GraalVM

У GraalVM в этом году первый стаблильный релиз

Всё в лучших библейских традициях. Вместо воды и вина интерпретаторы и компиляторы. GraalVM не даст возникнуть «вавилонскому столпотворению» в коде. Да, все по-прежнему будут «говорить» на разных языках, но при этом понимать друг друга.

По сути это универсальная виртуальная машина для выполнения разных языков, в том числе и JS. Мы можем запускать приложения на разных языках в одной среде с возможностью шаринга данных между ними. Соответственно, можно юзать разные библиотеки (из разных ЯП) в одном проекте.

CommonJS -> AMD -> UMD -> «It don't matter if you're black or white»

image

Да-да, это те самые michael-jackson-файлы (.mjs). А если говорить общепринятым языком, ECMAScript Modules.

В этом году был 12-й мажорный релиз Ноды, который ускорил доставку новой модульной системы в наши светлые репозитории. Фича пока экспериментальная, и всё не так радужно до сих пор, но работа активно ведется, и по сути это один из первых больших шагов на пути к стандартизации модульной системы в JS.

BigInt

Математика больших чисел в этом году заехала во все популярные браузеры, за исключением Egde. Но Edge простительно, сами понимаете из-за чего.

В финтехе часто приходится работать с большими числами. Для тех же арифметических операций над числами с плавающей точкой теперь можно эмулировать какой-нибудь BigDecimal, используя BigInt. До этого такие механики создавались с помощью сторонних библиотек.

Очевидно, что нативная реализация должна быть существенно производительней текущих third-party решений.

Нет виртуального DOM. Нет фреймворков поверх фреймворков. Нет фреймворка в рантайме. Есть Svelte. И тот «исчезающий».

Строго говоря, само существование Svelte не ново. В этом году был релиз аж третьей версии. Но именно после третьей версии о Svelte заговорили. Да как заговорили! Сотни комментов только к статьям-переводам. И речь не про косяки Реакта или очередной «You don't need Redux».

А добавить-то и нечего. Основные понятия я уже вынес в подзаголовок. А для поленившихся тогда, но желающих «потыкать или хотя бы одним глазом глянуть» — вот образцовый интерактивный учебник.

Logux

Ещё одно детище отечественного опенсорса, собранного под эгидой Андрея Ситника и его алчущих «ваших мозгов» марсиан. Тут ситуация сродни Svelte: о технологии знают достаточно давно. Среди киллер-фич были замечены:

  • offline first,
  • синхронизация между вкладками,
  • упрощение (и часто замещение) клиентского Redux.

Но только в этом году Logux сошёл с ярких страниц гитхаба и получил отдельный ресурс с документацией.

По словам Андрея:

Само собой, сайт построен не на популярных реакт-решениях. В треде расскажу об экспериментах, которые удалось в нём реализовать. 17 килобайт веса, 100 очков на Lighthouse, никаких фреймворков. Фокус на DX и UX.

Помимо исходников в твите все могут изучить развёрнутый пост Андрея о разработке доки, чтобы «заглянуть под капот новому лицу Logux».

Эпилог

Мы заигрались за 10 лет становления JavaScript и фронтенда. Да так успешно, что все в награду получили аметистового протодракона. Сейчас покажу, как это вышло:

image image image image image image image image image

Ну было же? Было?

С ежегодной речью выступил Максон «Черная Борода» Вислогуров. До новых встреч в новом десятилетии! Все по драконам!

image

Комментарии

Продолжая пользование данным Сайтом, вы даете свое согласие на сбор и обработку технической информации (cookies). Подробнее о cookies читайте вПолитике конфиденциальности.