Результаты опроса State of JavaScript 2025. TypeScript фактически победил как язык, отстреливание типов позволяет запускать его нативно в стабильных версиях Node.js, а Vite по загрузкам обогнал Webpack. При этом AI все сильнее влияет на разработку, к концу 2025 года чуть меньше 30% кода было сгенерировано AI, и быстро растут Cursor, Zed, Claude, Gemini и Copilot. #stateof #js
https://2025.stateofjs.com/
https://2025.stateofjs.com/
👍33🔥8❤4
Явное управление ресурсами в JavaScript. Мэтт Смит объясняет
https://allthingssmitty.com/2026/02/02/explicit-resource-management-in-javascript/
using и await using, а также Symbol.dispose и Symbol.asyncDispose, чтобы очистка всегда выполнялась при выходе из области видимости и в обратном порядке для нескольких ресурсов. Для большей гибкости есть DisposableStack и AsyncDisposableStack. #js #ecmascripthttps://allthingssmitty.com/2026/02/02/explicit-resource-management-in-javascript/
🔥26👍14❤6
Нативные JSON-модули наконец-то стали реальностью. Мэтт Смит объясняет, как атрибуты импорта позволяют загружать JSON-файлы напрямую через
https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/
import data from 'data.json' with { type: 'json' } без сборщика. Браузеры и рантаймы обрабатывают JSON-модули нативно с явным указанием типа, что избавляет от трансформаций на этапе сборки и закладывает основу для будущих типов модулей. #json #jshttps://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/
👍41🔥10❤4
Прогрессивные веб-компоненты. Ариэль Салминен представляет Elena — опенсорсную библиотеку для создания веб-компонентов, которые сначала работают на HTML и CSS, а затем гидратируются с помощью JavaScript. Elena решает распространённые проблемы: сдвиги раскладки, проблемы доступности и слабую поддержку серверного рендеринга. Библиотека весит всего 2,6 КБ и включает более 1000 тестов со 100% покрытием кода. #webcomponents #js
https://arielsalminen.com/2026/progressive-web-components/
https://arielsalminen.com/2026/progressive-web-components/
🎉24❤12👍8🔥2
Полностью локальные встраиваемые примеры кода. Александр Овганнисян создал веб-компонент, который рендерит изолированные песочницы для кода через
https://www.aleksandrhovhannisyan.com/blog/local-code-embeds/
<iframe srcdoc> без сторонних сервисов вроде CodePen или CodeSandbox. Компонент берёт HTML, CSS и JavaScript из элемента <template> и создаёт полностью локальный изолированный превью. Работает везде, где поддерживаются HTML и JavaScript, и не имеет зависимостей. #html #jshttps://www.aleksandrhovhannisyan.com/blog/local-code-embeds/
🔥47👍8❤4
Варианты предзагрузки изображений на JavaScript. Алекс Макартур сравнивает пять подходов:
https://macarthur.me/posts/preloading-images/
new Image(), <link rel="preload">, скрытый <div> с CSS-фоном, Cache API и fetch(). У каждого метода свои компромиссы в плане браузерного кеширования, обработки CORS и гибкости. Статья разбирает, когда лучше использовать каждый из них, чтобы избежать задержки при показе ещё не загруженных изображений. #js #performancehttps://macarthur.me/posts/preloading-images/
🔥21👍6❤4🎉2
Скоро мы наконец сможем отправить JavaScript в ShadowRealm. Мэт Маркиз разбирает предложение TC39 ShadowRealm, создающее изолированные контексты исполнения с собственными глобальными объектами в том же потоке, что и основной хост. Двух методов
https://css-tricks.com/soon-we-can-finally-banish-javascript-to-the-shadowrealm/
evaluate() и importValue() достаточно, чтобы изолировать сторонние скрипты, рекламу и тесты без загрязнения основного окружения. Сейчас на стадии 2.7, в браузерах пока нет. #js #ecmascripthttps://css-tricks.com/soon-we-can-finally-banish-javascript-to-the-shadowrealm/
👍37🔥19
Тихая проблема ненужного async. Мэтт Смит предупреждает, что
https://allthingssmitty.com/2026/06/08/the-quiet-problem-with-unnecessary-async/
async функция без настоящей асинхронной работы меняет свой контракт и заставляет все вызовы обрабатывать промисы. async распространяется по цепочке вызовов, добавляет когнитивную нагрузку и скрывает, где действительно происходит ввод-вывод. Он советует оставлять синхронные функции синхронными, а async вводить только тогда, когда появляется реальная асинхронная работа. #js #performancehttps://allthingssmitty.com/2026/06/08/the-quiet-problem-with-unnecessary-async/
👍30🎉4
CSS реагирует, JS просто слушает. Адам Аргайл представил
https://prop-for-that.netlify.app/
prop-for-that — небольшую библиотеку, которая отдаёт состояние рантайма в CSS через кастомные свойства. Достаточно добавить data-props-for к элементу, и CSS читает живые значения: позицию курсора, скорость прокрутки, заряд батареи, скорость сети, размер вьюпорта, валидацию форм, без обработчиков событий и работы с DOM. Доступно больше 16 источников. #css #jshttps://prop-for-that.netlify.app/
🔥38❤5👍4
Вышел Babel 8: только ESM, без ES5 по умолчанию и плавный путь миграции. Команда Babel выпустила восьмую версию спустя восемь лет, за которые загрузки выросли с 1,7 до 651 млн в неделю, сосредоточившись на трёх изменениях, а не на новых возможностях. Теперь Babel только ESM и требует Node.js 22+, больше не компилирует в ES5, а целится в современные браузеры через Browserslist и заменяет общие опции
https://babeljs.io/blog/2026/06/16/8.0.0/
loose и spec на assumptions, включаемые по отдельности. #js #toolshttps://babeljs.io/blog/2026/06/16/8.0.0/
🔥34👍3
Что нового в ECMAScript 2026. Павел Гжибек разбирает возможности новой спецификации:
https://pawelgrzybek.com/whats-new-in-ecmascript-2026/
Array.fromAsync, Error.isError(), Math.sumPrecise для точного суммирования чисел с плавающей точкой, конвертация Uint8Array в Base64 и Hex, Iterator.concat() для объединения итераторов, доступ к исходному тексту в JSON.parse и Map.getOrInsert() для вставки значений. #ecmascript #jshttps://pawelgrzybek.com/whats-new-in-ecmascript-2026/
👍24🔥1
Вышел TypeScript 7.0. Дэниел Розенвассер представляет нативный порт на Go, который ускоряет полную сборку в 8–12 раз: компиляция VS Code сократилась со 125,7 до 10,6 секунды. Он распараллеливает работу через флаги
https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/
--checkers и --builders, перестраивает отслеживание файлов на движке Parcel, снижает расход памяти на 6–26% и стабилизирует языковой сервер с падениями реже на 60%. Поддержка Vue, Astro и Angular ждёт стабильного API в 7.1. #js #toolshttps://devblogs.microsoft.com/typescript/announcing-typescript-7-0/
🔥51🎉13❤10👍1
Нужны ли ещё инструменты сборки? Олли Уильямс разбирает, оправдывают ли себя фронтенд-инструменты в 2026 году. Браузерные префиксы и Sass уходят в прошлое: CSS получил вложенность, кастомные свойства и цветовые функции, но бандлинг и минификация всё ещё полезны для сжатия и меньшего числа запросов. В JS предзагрузка модулей заменяет бандлинг в небольших проектах, транспайлеры по умолчанию выдают современный код, а JSDoc даёт типы без сборки. #tools #js
https://olliewilliams.xyz/blog/no-build/
https://olliewilliams.xyz/blog/no-build/
👍10❤2
Как Baseline помогает писать меньше JavaScript. Джад Джубран разбирает пять групп зависимостей, которые уже заменяются возможностями платформы: форматтеры
https://www.smashingmagazine.com/2026/08/how-baseline-can-help-ship-less-javascript/
Intl вместо timeago.js и numeral, fetch() с AbortSignal.timeout() вместо axios, <dialog> и Popover API вместо библиотек для модальных окон и подсказок, structuredClone и Object.groupBy вместо Lodash. Исключение — Temporal: его полифил на 44 КБ сводит экономию на нет. #baseline #jshttps://www.smashingmagazine.com/2026/08/how-baseline-can-help-ship-less-javascript/
👍23❤2
Как выделить фрагмент текста внутри поля. Олли Уильямс показывает, как новый OpaqueRange распространяет CSS Custom Highlight API на поля ввода. Вызовите
https://olliewilliams.xyz/blog/opaquerange/
createValueRange() у <textarea> или у <input> с типом text, password, search, tel или url, передайте результат в Highlight() и зарегистрируйте через CSS.highlights.set(). В ::highlight() доступны color, background-color, text-decoration и text-shadow. Работает в Chromium 152. #chrome #jshttps://olliewilliams.xyz/blog/opaquerange/
🔥19👍2
Главный поток браузера — дорогой ресурс. Сонхёп Ли напоминает: в одном потоке живут JavaScript, стили, лейаут, отрисовка и события, а на всё это — около 10 миллисекунд на кадр, на 120 Гц вдвое меньше. Тратить их можно с умом: дробить длинные задачи через
https://kciter.so/posts/the-expensive-main-thread/en/
scheduler.yield(), объединять события дебаунсом и тротлингом, расставлять приоритеты и откладывать неважное. Или отдать работу композитору и воркерам. Всё показано на интерактивных демо. #performance #jshttps://kciter.so/posts/the-expensive-main-thread/en/
👍29❤13🔥4
Современные типы для веба. Филип Уолтон устал от того, что TypeScript помечает ошибками View Transition API, Long Animation Frame API и
https://philipwalton.com/articles/modern-web-types/
fetchLater(): официальные типы для DOM включают только те API, что уже есть в двух движках. Поэтому он выпустил modern-web-types — замену, собранную тем же генератором и по данным W3C webref, но с порогом в один движок: плюс 433 интерфейса, 223 глобальные переменные и 311 свойств и методов у существующих. #tools #jshttps://philipwalton.com/articles/modern-web-types/
❤25🔥13👍2
Кризис среднего возраста у JavaScript. Марун Байдун разбирает, как Rust, Go и Zig захватывают инструменты JavaScript. Пока линтеры и форматтеры были на том же языке, что и код, любой мог их отладить и починить. Бандлер, переписанный на Rust, быстрее, но поддерживать его могут меньше людей. Мы компилируем JavaScript на Rust, чтобы получить JavaScript для движка, написанного в основном на C++, то есть прокладываем всё более быстрые рельсы для медленного поезда. #js #tools
https://maroun-baydoun.com/blog/javascript-midlife-crisis/
https://maroun-baydoun.com/blog/javascript-midlife-crisis/
🔥26👍4❤2
Пламени нужны три синусоиды. Кармен Ансио разбирает анимацию спички на канвасе: от карандашных набросков до кода. Пламя состоит из трёх капель, нарисованных через
https://www.carmenansio.com/articles/matchstick-flame-canvas/
quadraticCurveTo, которые качаются тем меньше, чем ближе к основанию. Одна синусоида похожа на маятник, а три с разными частотами дают живое мерцание, которое повторяется только через 21 секунду. Фазы зажигания, горения и затухания управляются конечным автоматом с учётом prefers-reduced-motion. #animation #jshttps://www.carmenansio.com/articles/matchstick-flame-canvas/
❤20🔥10👍2
Цена JavaScript-фреймворков для ИИ. Нолан Лоусон попросил агентов собрать одно приложение с покемонами на 12 стеках: от Angular и Next.js до Astro, Hono с htmx и ванильного JavaScript. Hono с htmx оказался самым дешёвым — $2,67 за прогон и меньше всего кода. Angular — самый дорогой ($4,97), медленный и объёмный. С Astro агенты справились быстрее всех, а клиентского JavaScript в приложении почти нет. Бенчмарк открыт: выбирайте стек по результатам, а не по ощущениям. #js #ai
https://nolanlawson.com/2026/10/28/the-ai-cost-of-javascript-frameworks/
https://nolanlawson.com/2026/10/28/the-ai-cost-of-javascript-frameworks/
👍20❤11