🙃 Как Google Переводчик ломает React и другие веб-приложения
Когда Переводчик переводит страницу, он не просто подменяет текст. Он лезет в DOM и без стеснения меняет структуру элементов. Был
React живёт по принципу “ничего не ломаем — всё обновляем точечно”. Но когда Переводчик самовольно выдёргивает узлы, React теряет связь с элементами и впадает в ступор. Отсюда — залипший текст, странные клики (потому что event.target вдруг указывает на <font>), и фатальные креши. Но справедливости ради, достаётся не только React — любой фреймворк, работающий с DOM, рискует оказаться в похожей ситуации.
А можно починить? Теоретически — да: оборачивайте каждый
Подробнее про работу Google переводчика в связке с React читайте на Хабре.
@js_for_devs
Когда Переводчик переводит страницу, он не просто подменяет текст. Он лезет в DOM и без стеснения меняет структуру элементов. Был
<p>There are 4 lights!</p> — стало <p><font>Er zijn 4 lampen!</font></p>. Красиво? Возможно. Но React от этого в шоке: его виртуальный DOM теперь говорит одно, а реальный — другое. В результате приложение может “повиснуть” или выдать NotFoundError: Failed to execute 'removeChild'.React живёт по принципу “ничего не ломаем — всё обновляем точечно”. Но когда Переводчик самовольно выдёргивает узлы, React теряет связь с элементами и впадает в ступор. Отсюда — залипший текст, странные клики (потому что event.target вдруг указывает на <font>), и фатальные креши. Но справедливости ради, достаётся не только React — любой фреймворк, работающий с DOM, рискует оказаться в похожей ситуации.
А можно починить? Теоретически — да: оборачивайте каждый
TextNode в span, патчите методы removeChild, ловите ошибки границами и молитесь на ESLint-плагин. На практике — проще запретить перевод вообще. Грустно, но факт: единственный стабильный фикс — не давать пользователю переводить страницу. Звучит немного антигуманно, зато работоспособно.Подробнее про работу Google переводчика в связке с React читайте на Хабре.
@js_for_devs
🔥5👍3❤1🤔1🤯1
🔥 HolyJS устраивает день открытых дверей
29 октября любой может ворваться в мир JavaScript-движухи, пощупать формат конференции и почувствовать атмосферу HolyJS — без билета, paywall’ов и корпоративных пропусков. Просто онлайн, просто бесплатно.
Что по программе?
— JSON in → App out — расскажут, как превратить унылые таблицы и документы в графы и память агентов. Звучит как магия, но это уже почти стандарт в AI-разработке.
— Транскодирование видео в web — если вы когда-нибудь страдали от "почему видео не работает в Safari", вам туда.
— Создание RAG-системы на Node.js — да-да, та самая Retrieval-Augmented Generation, только своими руками. Прямо мастер-класс: собери себе мини-ChatGPT-поиск.
Всё что нужно для участия – зарегистрироваться.
@js_for_devs
29 октября любой может ворваться в мир JavaScript-движухи, пощупать формат конференции и почувствовать атмосферу HolyJS — без билета, paywall’ов и корпоративных пропусков. Просто онлайн, просто бесплатно.
Что по программе?
— JSON in → App out — расскажут, как превратить унылые таблицы и документы в графы и память агентов. Звучит как магия, но это уже почти стандарт в AI-разработке.
— Транскодирование видео в web — если вы когда-нибудь страдали от "почему видео не работает в Safari", вам туда.
— Создание RAG-системы на Node.js — да-да, та самая Retrieval-Augmented Generation, только своими руками. Прямо мастер-класс: собери себе мини-ChatGPT-поиск.
Всё что нужно для участия – зарегистрироваться.
@js_for_devs
👍4❤1🔥1
😅 Российские вузы перевели JavaScript на русский
Проект направлен на то, чтобы снизить языковой барьер у начинающих программистов
По данным организаторов, более 60% студентов отметили, что обучение стало понятнее, а время на освоение базовых понятий сократилось почти на треть.
1С, подвинься! ЖаваСкрипт в здании)
Источник
@js_for_devs
Проект направлен на то, чтобы снизить языковой барьер у начинающих программистов
По данным организаторов, более 60% студентов отметили, что обучение стало понятнее, а время на освоение базовых понятий сократилось почти на треть.
При этом часть преподавателей выражают опасения: переход на английский в будущем может вызвать трудности, если студенты долго работают с кириллическим кодом.
1С, подвинься! ЖаваСкрипт в здании)
Источник
@js_for_devs
😁10🔥2🤯2🙏1
Опубликовали статью, в которой автор аккуратно подмечает любопытный сдвиг: выбор фреймворка сегодня делает не разработчик, а LLM.
Фреймворки сегодня уже не соревнуются — их выбор всё чаще делает не разработчик, а LLM. И в этой системе координат React занял место «платформы по умолчанию»: модели видят его в обучающих данных, инструменты подсовывают его в промптах, а разработчики ожидают именно его. Получается круг, из которого трудно вырваться.
Из-за этого новые фреймворки оказываются «мёртвыми при рождении»: чтобы модель начала их генерировать, нужно 12–18 месяцев реального использования, чтобы появлялась экосистема — ещё больше. А за это время React просто продолжает наращивать массу, укрепляя своё статистическое преимущество.
Примечательный факт: по данным BuiltWith, за год появилось более 13 млн новых сайтов на React — в десятки раз больше, чем во всей видимой выборке HTTP Archive. С такой инерцией неудивительно, что альтернативы тонут в шуме.
@js_for_devs
Фреймворки сегодня уже не соревнуются — их выбор всё чаще делает не разработчик, а LLM. И в этой системе координат React занял место «платформы по умолчанию»: модели видят его в обучающих данных, инструменты подсовывают его в промптах, а разработчики ожидают именно его. Получается круг, из которого трудно вырваться.
Из-за этого новые фреймворки оказываются «мёртвыми при рождении»: чтобы модель начала их генерировать, нужно 12–18 месяцев реального использования, чтобы появлялась экосистема — ещё больше. А за это время React просто продолжает наращивать массу, укрепляя своё статистическое преимущество.
Примечательный факт: по данным BuiltWith, за год появилось более 13 млн новых сайтов на React — в десятки раз больше, чем во всей видимой выборке HTTP Archive. С такой инерцией неудивительно, что альтернативы тонут в шуме.
@js_for_devs
🔥6👍3😁2😢1
This media is not supported in your browser
VIEW IN TELEGRAM
Ключевая особенность для Frontend/Fullstack — глубокая интеграция агента с браузером, позволяющая ему самостоятельно тестировать и взаимодействовать с UI (browser-in-the-loop).
Вместо прямого написания кода, разработчик управляет агентами через отдельный Manager View, который принимает и выполняет задачи. Агенты предоставляют результаты своей работы в виде визуальных артефактов (скриншотов, видео) для удобного асинхронного контроля и обратной связи.
На текущий момент доступ к IDE крайне затруднён как из-за высокой нагрузки на сервера, так и, по сообщениям пользователей, из-за блокировки IP-адресов, относящихся к РФ.
@js_for_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥3🥰1
🔥 Обзор новых возможностей CSS в Safari 26
Safari 26 вышел, и это одно из самых содержательных обновлений WebKit за последние годы.
В релизе — 75 новых возможностей и 171 улучшение. Многие фичи уже были в Chrome, но теперь они становятся доступными и в Safari, что важно для кросс-браузерного использования.
Это только часть изменений. Полный разбор со множеством демо — в статье.
@js_for_devs
Safari 26 вышел, и это одно из самых содержательных обновлений WebKit за последние годы.
В релизе — 75 новых возможностей и 171 улучшение. Многие фичи уже были в Chrome, но теперь они становятся доступными и в Safari, что важно для кросс-браузерного использования.
Главные изменения в части CSS:
• Anchor positioning. Теперь Safari поддерживает привязку абсолютно позиционированных элементов к другим узлам. Это делает возможным реализацию тултипов и попапов на чистом CSS.
• Scroll-linked animations. Появились animation-timeline с функциями scroll() и view(), а также animation-range. Анимации можно привязывать к прокрутке или к появлению элемента во вьюпорте — без JS.
• progress(). Новая функция, которая вычисляет прогресс в диапазоне и умеет работать со смешанными единицами измерения (px + vw и т.п.). Упрощает сценарии, которые раньше приходилось собирать через calc() или тригонометрию.
• Самовыравнивание при absolute. В absolute-контейнерах теперь можно использовать align-self и justify-self (включая anchor-center). Это решает часть типичных задач центрирования без translate-хаков.
• contrast-color(). Функция автоматически выбирает чёрный или белый текст для заданного фона. Реализация пока ограниченная, но впервые доступна в стабильном релизе Safari.
• text-wrap: pretty. Улучшает разбиение текста на строки: уменьшает количество коротких строк и сглаживает «рваный» край. Safari идёт дальше текущей реализации Chrome.
Это только часть изменений. Полный разбор со множеством демо — в статье.
@js_for_devs
❤3👍3🔥3😁1
Как выбраться из гравитации фреймворков?
Подготовили перевод статьи о том, почему веб-команды застревают на орбите фреймворков и забывают о возможностях самой платформы.
Автор убеждён: браузеры развиваются быстрее, чем экосистемы вокруг них, а зависимость от React и других инструментов тормозит инновации. Пора снова смотреть на веб как на платформу, а не как на “внутренность” фреймворка.
📚 Читать на Хабр: https://habr.com/ru/articles/968510/
Подготовили перевод статьи о том, почему веб-команды застревают на орбите фреймворков и забывают о возможностях самой платформы.
Автор убеждён: браузеры развиваются быстрее, чем экосистемы вокруг них, а зависимость от React и других инструментов тормозит инновации. Пора снова смотреть на веб как на платформу, а не как на “внутренность” фреймворка.
Критика не в том, что React плох. Критика в том, что превращение любого фреймворка в инфраструктуру создаёт слепые зоны в нашем мышлении и подходах к разработке. Когда React становится линзой, через которую мы смотрим на веб, мы перестаём замечать, что сама платформа уже умеет, и перестаём тянуться к нативным решениям, потому что ждём, пока появится их версия, одобренная фреймворком.
📚 Читать на Хабр: https://habr.com/ru/articles/968510/
👍6❤3🔥3
🤑 Anthropic купили Bun – runtime среду для JavaScript и TypeScript
Этот инструмент превосходит Node.js по скорости и уже использовался в Claude Code (а еще им пользуются, например, Midjourney). Теперь, после покупки, Bun интегрируют в агента еще глубже: это означает, что нас ждет ускорение и, возможно, какие-нибудь новые фичи для отладки/тестирования.
Anthropic обещают, что Bun останется в опенсорсе под MIT-лицензией, и они продолжат в него инвестировать.
@js_for_devs
Этот инструмент превосходит Node.js по скорости и уже использовался в Claude Code (а еще им пользуются, например, Midjourney). Теперь, после покупки, Bun интегрируют в агента еще глубже: это означает, что нас ждет ускорение и, возможно, какие-нибудь новые фичи для отладки/тестирования.
Anthropic обещают, что Bun останется в опенсорсе под MIT-лицензией, и они продолжат в него инвестировать.
@js_for_devs
😱6❤4👍4🔥1
В этот знаменательный день несколько интересных фактов о языке:
• JS написан за 10 дней
• Автор языка не поддерживает LGBT движений
• Изначально язык назывался Mocha
• Название языка нагло слизано у Java ради хайпа
@js_for_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉8🔥4😁3
⚡️ TypeScript 7 всё ближе — нативный компилятор уже почти production-ready
Команда TS показала большой прогресс Project Corsa — переписанного в нативный код компилятора и language service.
Новый
TS 6.0 станет последним релизом на JavaScript — дальше весь стек переезжает в нативную ветку. Генерация JS и API ещё догоняются, но проверка типов уже даёт почти полное совпадение с 5.9, так что можно смело начинать пробовать.
📚 Полный разбор здесь: https://habr.com/ru/articles/973424/
@js_for_devs
Команда TS показала большой прогресс Project Corsa — переписанного в нативный код компилятора и language service.
Новый
tsgo тоже догнал функциональность tsc: есть --incremental, project references и --build. На реальных кодовых базах ускорение доходит до 8–10×, а параллельная архитектура делает сборки почти мгновенными.TS 6.0 станет последним релизом на JavaScript — дальше весь стек переезжает в нативную ветку. Генерация JS и API ещё догоняются, но проверка типов уже даёт почти полное совпадение с 5.9, так что можно смело начинать пробовать.
@js_for_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Прогресс разработки TypeScript 7: что уже работает и чего ждать
Команда JavaScript for Devs подготовила перевод большого апдейта от команды TypeScript. Разработчики рассказали, как идёт переписывание компилятора на нативный код, что уже работает в превью...
👍8🔥4🎉2
⚡️ Вышел WebStorm 2025.3
В новом релизе JetBrains усилили работу с TypeScript-проектами, улучшили поддержку монорепозиториев и добавили полноценную интеграцию ИИ-агентов прямо в IDE.
Коротко — самое важное:
— Новая тема интерфейса Islands по умолчанию.
— Улучшенное разрешение модулей и поддержка монорепозиториев (customConditions, exports, pnpm).
— Удалённая отладка JavaScript в WSL, Docker, SSH и других средах.
— Обновлённый AI Assistant: теперь Junie + Claude Agent прямо в IDE.
— Полная поддержка Vitest 4 с новым API репортинга.
— Виджет Prettier и автоформатирование при вставке.
— Централизованные настройки сред выполнения Node.js, Bun и Deno.
📚 Читайте и комментируйте на Хабр.
@js_for_devs
В новом релизе JetBrains усилили работу с TypeScript-проектами, улучшили поддержку монорепозиториев и добавили полноценную интеграцию ИИ-агентов прямо в IDE.
Коротко — самое важное:
— Новая тема интерфейса Islands по умолчанию.
— Улучшенное разрешение модулей и поддержка монорепозиториев (customConditions, exports, pnpm).
— Удалённая отладка JavaScript в WSL, Docker, SSH и других средах.
— Обновлённый AI Assistant: теперь Junie + Claude Agent прямо в IDE.
— Полная поддержка Vitest 4 с новым API репортинга.
— Виджет Prettier и автоформатирование при вставке.
— Централизованные настройки сред выполнения Node.js, Bun и Deno.
📚 Читайте и комментируйте на Хабр.
@js_for_devs
👍6⚡2🔥2
⚡️ 37signals показывают, на что способен нативный CSS
Три их продукта (Campfire, Writebook, Fizzy) построены на чистом CSS и при этом закрывают реальные сложные интерфейсы: канбан, drag-and-drop, диалоги, темы, адаптивность. Архитектура максимально простая: плоская структура файлов, кастомные свойства, OKLCH, container queries, CSS Layers, селектор :has() и color-mix(). Никакой сборки, никаких утилитарных фреймворков.
Cовременные возможности CSS уже перекрывают большинство причин, ради которых раньше использовали препроцессоры и Tailwind. Управление состоянием, тёмная тема, адаптивность, анимации — всё решается декларативно и масштабируется без инструментальной надстройки.
Полный разбор всех приёмов, и примеров кода читайте в статье на Хабре.
@js_for_devs
Три их продукта (Campfire, Writebook, Fizzy) построены на чистом CSS и при этом закрывают реальные сложные интерфейсы: канбан, drag-and-drop, диалоги, темы, адаптивность. Архитектура максимально простая: плоская структура файлов, кастомные свойства, OKLCH, container queries, CSS Layers, селектор :has() и color-mix(). Никакой сборки, никаких утилитарных фреймворков.
Cовременные возможности CSS уже перекрывают большинство причин, ради которых раньше использовали препроцессоры и Tailwind. Управление состоянием, тёмная тема, адаптивность, анимации — всё решается декларативно и масштабируется без инструментальной надстройки.
Полный разбор всех приёмов, и примеров кода читайте в статье на Хабре.
@js_for_devs
Хабр
Vanilla CSS — единственное, что вам нужно
Команда JavaScript for Devs подготовила перевод статьи о том, как 37signals создают современные веб-приложения без Tailwind, Sass и сборщиков. Опираясь только на возможности нативного CSS, они строят...
🔥5👍4❤2
🧱 CSS Grid Lanes — нативные masonry-раскладки без JavaScript
Masonry в вебе годами делали через JS-библиотеки с костылями для доступности, фокуса и производительности. Grid Lanes наконец закрывают эту историю на уровне CSS.
Новый режим
В итоге:
— никакого JavaScript
— корректный tab-order и accessibility
— адаптивность без media и container queries
При этом сохраняется вся мощь Grid: переменная ширина колонок, растягивание элементов, явное позиционирование, смена направления раскладки. Плюс появляется новый параметр
📚 Читайте и комментируйте на Хабр.
@js_for_devs
Masonry в вебе годами делали через JS-библиотеки с костылями для доступности, фокуса и производительности. Grid Lanes наконец закрывают эту историю на уровне CSS.
Новый режим
display: grid-lanes расширяет CSS Grid и позволяет браузеру самому раскладывать элементы по «полосам» — туда, где контент оказывается ближе к верху. В итоге:
— никакого JavaScript
— корректный tab-order и accessibility
— адаптивность без media и container queries
При этом сохраняется вся мощь Grid: переменная ширина колонок, растягивание элементов, явное позиционирование, смена направления раскладки. Плюс появляется новый параметр
item-tolerance, который позволяет контролировать, насколько агрессивно элементы «перестраиваются» между полосами — важная деталь для UX и клавиатурной навигации.📚 Читайте и комментируйте на Хабр.
@js_for_devs
👍6🔥6❤3🤔1
— В статике Go и Bun почти равны, Bun доходил до ~200k RPS
— С БД Go стабильнее: ниже latency, аккуратный пул, ~84k RPS
— Bun сильнее нагружает Postgres из-за агрессивных коннектов
Отдельно занятный момент: в комментарии пришёл автор фреймворка для Bun. Он отметил, что тест можно ещё улучшить: автоматический роутинг через
Bun.serve.routes даёт до ~15% прироста, продакшен-сборка через bun build --compile заметно снижает память (до ~40%), а new Date(Date.now()) вообще избыточен и слегка бьёт по перфу.То есть Bun можно выжать ещё сильнее — но в stateful-кейcах Go всё ещё выглядит надёжнее.
@js_for_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Go (Golang) vs TypeScript Performance Benchmark (2026)
Go vs TypeScript Speed Performance Benchmark.
👨💼 Mentorship/On-the-Job Support/Consulting - https://calendly.com/antonputra/youtube or me@antonputra.com
👀 Check out recommendations from my previous clients - https://www.linkedin.com/in/anton-putra/deta…
👨💼 Mentorship/On-the-Job Support/Consulting - https://calendly.com/antonputra/youtube or me@antonputra.com
👀 Check out recommendations from my previous clients - https://www.linkedin.com/in/anton-putra/deta…
👍6🔥2❤1
🧩 RSC Explorer: что реально передаётся по сети в React Server Components
RSC-протокол — внутренняя и почти недокументированная часть React, из-за чего даже опытные пользователи Server Components часто смутно представляют, что именно стримится между сервером и клиентом. На фоне недавнего интереса к безопасности это стало особенно заметно.
RSC Explorer — небольшой open-source инструмент, который пошагово показывает, как React сериализует и восстанавливает React-деревья, а не HTML или строки. Видно стриминг, “дыры” в async-дереве, ссылки на client components, Server Actions и то, как обновляется серверный UI без сброса клиентского состояния.
Очень наглядный способ понять, как RSC работают под капотом.
👉 Подробный разбор с примерами — в новой статье на Хабре.
RSC-протокол — внутренняя и почти недокументированная часть React, из-за чего даже опытные пользователи Server Components часто смутно представляют, что именно стримится между сервером и клиентом. На фоне недавнего интереса к безопасности это стало особенно заметно.
RSC Explorer — небольшой open-source инструмент, который пошагово показывает, как React сериализует и восстанавливает React-деревья, а не HTML или строки. Видно стриминг, “дыры” в async-дереве, ссылки на client components, Server Actions и то, как обновляется серверный UI без сброса клиентского состояния.
Очень наглядный способ понять, как RSC работают под капотом.
👉 Подробный разбор с примерами — в новой статье на Хабре.
👍7❤2🔥2
Forwarded from AI for Devs
На прошлой неделе Habr опубликовал итоги года — и наш проект попал в ТОП-2 среди UGC-авторов (независимых, не аффилированных с компаниями) и в ТОП-8 overall!
Учитывая, что активно публиковаться мы начали только в сентябре, результат за один квартал, на мой взгляд, более чем достойный. Проект изначально запускался как эксперимент — и теперь уже можно уверенно сказать, что эксперимент удался.
В следующем году постараемся как минимум сохранить текущие темпы, а как максимум — заметно их преумножить. Если вы следите только за одним из каналов проекта, напоминаю полный список наших ресурсов:
— @ai_for_devs — флагман проекта. Неудивительно, учитывая взрывной рост прикладного ИИ именно для разработчиков
— @go_for_devs — второй по популярности, но самый активный по вовлечённости
— @python_for_devs — канал, с которого всё началось, и этим он прекрасен
— @js_for_devs — здесь всё ещё впереди. Если вы из frontend-мира — добро пожаловать, догоним остальных 🙂
Суммарно за проектом уже следит более 6.5 тысяч человек!
Поздравляю всех с наступающим Новым годом и желаю профессионального роста и сильных результатов в 2026!
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Хабр — Итоги 2025
Привет, Хабр! Ну, как настроение? Кажется, что мир начинает вращаться с какой-то практически неуловимой для человеческого внимания скоростью: ИИ, нейрослоп, мошенники, зоопарк хакеров найма, утечки,...
🔥6👍5❤2
⚙️ Инструменты для JavaScript больше не пишут на JavaScript — и вот почему это осознанный выбор
За последние пару лет экосистема JS радикально сменила курс: бандлеры, линтеры и компиляторы массово переезжают на Rust, Go и Zig.
Причина проста. Современные JS-проекты — это тысячи файлов, сложные графы зависимостей и тяжёлые пайплайны сборки. Инструменты, написанные на самом JavaScript, упираются в CPU и память, даже при всех оптимизациях V8.
Системные языки решают эту проблему на уровне архитектуры:
— нативная производительность;
— реальная многопоточность;
— предсказуемое потребление памяти.
Именно поэтому SWC заменяет Babel, а Microsoft переписывает компилятор TypeScript на Go ради масштабируемости.
Интересно, что сообщество сознательно приняло компромисс: инструменты стали быстрее, но сложнее для контрибьюта. Большинство JS-разработчиков больше не могут «залезть внутрь» своего линтера или компилятора так же легко, как раньше.
@js_for_devs
За последние пару лет экосистема JS радикально сменила курс: бандлеры, линтеры и компиляторы массово переезжают на Rust, Go и Zig.
Причина проста. Современные JS-проекты — это тысячи файлов, сложные графы зависимостей и тяжёлые пайплайны сборки. Инструменты, написанные на самом JavaScript, упираются в CPU и память, даже при всех оптимизациях V8.
Системные языки решают эту проблему на уровне архитектуры:
— нативная производительность;
— реальная многопоточность;
— предсказуемое потребление памяти.
Именно поэтому SWC заменяет Babel, а Microsoft переписывает компилятор TypeScript на Go ради масштабируемости.
Интересно, что сообщество сознательно приняло компромисс: инструменты стали быстрее, но сложнее для контрибьюта. Большинство JS-разработчиков больше не могут «залезть внутрь» своего линтера или компилятора так же легко, как раньше.
@js_for_devs
👍9🔥4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Почему свой игровой движок — это проще, чем кажется
В новой, большой и практической статье смотрим, как создать игровой движок с нуля — без шейдеров, GPU-магии и «взрослых» фреймворков.
Шаг за шагом разбираемся, как из простых веб-примитивов вырастает полноценная игра, а затем — универсальный движок, и почему такой подход даёт больше свободы и выразительности, чем готовые решения.
📚 Читать на Хабр: https://habr.com/ru/articles/986110/
В новой, большой и практической статье смотрим, как создать игровой движок с нуля — без шейдеров, GPU-магии и «взрослых» фреймворков.
Шаг за шагом разбираемся, как из простых веб-примитивов вырастает полноценная игра, а затем — универсальный движок, и почему такой подход даёт больше свободы и выразительности, чем готовые решения.
📚 Читать на Хабр: https://habr.com/ru/articles/986110/
👍6🔥3⚡2