Всем привет! С вами «Новости 512» от CSSSR. Это вторая часть восполнения пробелов: охватить все-все события, конечно, не получилось, но я постарался осветить всё самое важное и интересное. Этот выпуск я тоже начну с релизов, а в следующем выпуске интересные публикации снова будут идти в начале.
Ещё кое-что! С момента выхода предыдущего выпуска мне написали несколько слушателей: кто-то сказал спасибо, кто-то поздравил – спасибо большое! Я хочу ещё раз сказать: если у вас есть новость или инфоповод из мира веб-разработки, или вы столкнетесь с ошибкой в одном из выпусков, смело пишите мне в Telegram.
Новости релизов
Я хотел начать выпуск с релизов TS и пропозала о синтаксисе типов для JS, но к сожалению, этот материал я перенесу на следующий выпуск: хочется нормально его осветить. Пока вернёмся к другим событиям.
Поговорим о языках программирования. О ES2022 мы говорили в прошлом выпуске – в этом выпуске речь пойдёт о тех языках, которые не находятся в центре постоянного внимания.
Сначала важное про Ruby. Вышел security-релиз всех поддерживаемых веток языка Ruby. Обновленные версии 3.1.2, 3.0.4, 2.7.6, 2.6.10 –– в них были устранены две уязвимости: первая связана с переполнением буфера, вторая – с двойным освобождением памяти в коде компиляции регулярных выражений.
Rust 1.62 доступен широкому кругу пользователей как стабильная версия. Теперь зависимости можно добавлять напрямую из командной строки при помощи команды cargo add, появилась возможность определять дефолтные составляющие для перечислений, также мьютексы на Linux теперь стали более легковесными и быстрыми.
Новых штук подвезли в Go 1.18. Важное введение — расширение поддержки дженериков. В будущих релизах обещают продолжать работу над дженериками и добавлять фичи для более сложных случаев их использования. Есть хорошая новость для пользователей процессоров M1 и ARM64: производительность на этих платформах была увеличена на 20%. Ещё одна интересная фича — режим workspaces, который нужен для одновременной работы в нескольких модулях.
Вышел Erlang 25. Напомню, что в 24 выпуске язык обзавёлся JIT-компилятором. В этом релизе он получил оптимизацию и поддержку 64-разрядных процессоров ARM. Была добавлена новая конструкция maybe … end, похожая на begin … end, но без экспорта переменных из блока. Также была добавлена поддержка OpenSSL 3.0 и быстрый генератор псевдослучайных чисел в модуле rand.
Немного об операционных системах. Вышел дистрибутив Ubuntu 22.04 c кодовым названием Джемовая Медуза или Jammy Jellyfish. Этот выпуск — новая LTS-версия системы. Напомню, она будет поддерживаться 5 лет. Здесь вы сможете увидеть GNOME 42, обновления разных приложений, таких как LibreOffice и другие, конечно, новые версии языков программирования и других инструментов для разработки. Эта версия также станет первым выпуском с официальной сборкой для плат Raspberry Pi. Соответствующие обновления получили и другие официальные вариации Ubuntu. Кстати, на 22.04 я буду обновляться сам.
Ещё один новый дистрибутив — Red Hat Enterprise Linux 9. Эта версия полностью мигрировала на Python 3 и поставляется с версией Python 3.9. Рабочий стол GNOME 40, обновлённые компоненты для обеспечения безопасности, инструменты для разработчиков и версии СУБД. Также была добавлена экспериментальная поддержка VPN WireGuard.
Пара слов о редакторах кода. Почти 2 года спустя вышла новая мажорная версия Vim. Vim 9 предлагает скриптовый язык Vim9 Script, который похож на Java, JS и TS с поддержкой компилируемых функций. Улучшили поддержку LSP, добавили возможность открытия терминала во всплывающем окне и включили в состав версии набор цветовых схем.
Neovim тоже отметился релизом версии 0.7.0. В новом выпуске была предложена поддержка удалённой работы в редакторе с запуском экземпляра редактора на сервере и подключением к нему, также была прекращена поддержка Python 2.
В конце рубрики я хочу коснуться ещё парочки релизов.
Ваш любимый in-memory кэш Redis отметился релизом 7-ой мажорной версии. Появилась поддержка серверных функций. В этой версии представлена вторая версия ACL или Access Control List, который позволяет определять доступные команды и ключи для разных пользователей во время соединений. Ещё отмечу добрую порцию оптимизаций для ускорения и уменьшения потребления памяти.
Docker Desktop, который магически спас от консольных мук людей на MacOS и Windows теперь доступен на Linux. Не думаю, что многим линуксоидам это нужно, но я уверен, что процент начинающих пользователей довольно высок, так что возрадуйтесь.
Интересные публикации
Публикаций в этом выпуске, как и в прошлом, будет не очень много.
Тема, которая довольно часто поднимается и запутывает людей, – это модули в JavaScript. О них мне попалась небольшая статья, охватывающая самые старые паттерны модулей в ES5, которые, по сути, и не модули (по крайней мере не задумывались таковыми). Потом появлялись разные форматы модулей: UMD и AMD, CommonJS, registerA и ES6-модули. Каждый формат описывается отдельно с примером использования, а в конце статьи есть раздел, посвящëнный загрузчикам и сборщикам модулей. Отличная обзорная заметка, в которой есть всё, чтобы понять общую картину и начать гуглить подробности дальше.
Следующий материал от доктора Акселя Раушмайера (Dr. Axel Rauschmayer). Он опубликовал в своём блоге статью о работе с файловой системой в Node.js. Статья немаленькая, но подробно описывает ключевые моменты. Здесь и общие концепции, паттерны и конвенции при работе с файловым API, и синхронная/асинхронная работа с файлами, и перемещение файлов по файловой системе. В этой же статье есть примеры работы со ссылками, разрешениями и атрибутами файлов. Всё с примерами кода и описанием некоторых нюансов.
Хуан Диего Родригез (Juan Diego Rodríguez) на SmashingMagazine опубликовал статью о Gatsby 4. Относительно недавно команда Gatsby выпустила новую мажорную версию. В своей статье автор рассказывает о серверном рендеринге, параллельной обработке запросов, оптимизациях, которые были добавлены в новой версии, и Gatsby Cloud. Это облачная инфраструктура для проектов на Gatsby, как вы могли догадаться. Автор приводит обзор Gatsby Cloud и небольшое сравнение с Next.js.
Завершает рубрику статья о React-хуках на css-tricks. Статья посвящена хукам, которые, по мнению автора, не самые известные, но весьма полезные. Речь пойдёт о useReducer, useRef, useImperativeHandle, useMemo и useCallback. Я бы не сказал, что все они малоизвестны. Тем не менее в статье приведены подробные примеры, описание юз-кейсов и синтаксиса.
Другие новости
Готовы результаты опроса The State of JS 2021. Судя по результатам опроса, состояние JS значительно улучшилось: мы видим и поддержку большого количества новых фич, развитие стандарта, распространение на другие платформы и другие приятные вещи. Что касается фронтенд-фреймворков, по использованию «Большая Тройка» не изменилась: это, соответственно, React, Angular и Vue. За ними следом следует Svelte, который по результатам опроса стал сильно интересовать людей и больше использоваться, а также обладает большим рейтингом удовлетворенности пользователей. На бэке, несмотря ни на что, продолжает лидировать Express, но и тут есть тренд на интерес к Svelte в лице SvelteKit. В тестировании ничего особенно не изменилось: Jest правит балом, а с ним вальсирует Mocha. В сборщиках по-прежнему за главного Webpack, но 2021 год — год Vite: к нему проявляют наибольший интерес и отмечают как самый удобный инструмент. Также много внимания респонденты уделили и esbuild. Мне кажется, что мы увидим продолжение перекоса в сторону новых инструментов и в следующем году: просто пока подавляющее большинство проектов используют лидирующие в данном опросе технологии. Полные результаты опроса также заслуживают внимания – ссылка в описании выпуска.
Был запущен GitHub Copilot. Это сервис GitHub, который умеет дополнять код и даже дописывать целые куски кода — многие успели его попробовать, понравился он тоже многим и уже стал платным. В принципе закономерно, но и тут не обошлось без мини-скандала: дело в том, что Copilot — система, обученная на коде из репозиториев. Выяснилось, что система обучалась в том числе и на open-source репозиториях, некоторые даже предполагали, что обучение велось и на приватных репах, но это, очевидно, не доказать, находясь вне компании. Естественно, это вызвало недовольство в open-source среде и среди авторов различных проектов. Даже был призыв отказаться от использования GitHub после запуска коммерческой версии Copilot. Microsoft, конечно, не считает, что были нарушены какие-либо интеллектуальные права. Честно говоря, я думаю, что, как и всегда, недовольства просто останутся недовольствами без последствий для Microsoft. С покупкой GitHub компания стала практически монополистом в области хранения исходных кодов, чего ещё мы ожидали? Тем временем технология показывает себя хоть и с огрехами, но весьма неплохо и многим нравится. Посмотрим, какое будущее ждет «второго пилота».
GitLab объявила о том, что заменит свою Web IDE на VS Code как дефолтный редактор кода на платформе. Уже подготовлен прототип интеграции и было принято решение не тратить время на развитие своего редактора, копируя фичи, которые уже есть в VS Code. Довольно здравое решение, на мой взгляд.
Одновременно с этим не очень хорошая новость для любителей Atom. GitHub прекратит развитие редактора – 15 декабря этого года его разработка полностью прекратится. Чуете приближение момента доминации VS Code? Я точно чую. Но не всё так плохо: сообщается, что код Atom останется open-source и, возможно, появятся желающие сделать свой форк.
Все ссылки и сопутствующие публикации вы найдëте в описании выпуска. Дальше, как я уже говорил в прошлом выпуске, мы вернëмся к текущим событиям, например, к релизу Vite 3 или новому веб-фреймворку Ultra. До встречи в следующую пятницу.