Category : javascript

javascript
История JavaScript: браузерные войны, ECMAScript, Node.js, TypeScript, React

Десять дней разработки — и язык, на котором держится веб. В этой статье — история JavaScript и инструментов, которые привели его к этому.1995. Рождение легендыИдея создания JavaScript появилась в компании Netscape. В то время веб-страницы почти полностью состояли из HTML, а Netscape хотели добавить больше интерактивности.Первым шагом в эту сторону стало лицензирование языка Java для использования в браузере Netscape. Но Java оказался слишком сложным для веб-дизайнеров.Тогда Брендану Айку постав…

  • суббота, 11 июля 2026 г. в 00:00:12
javascript
Почему любой антидетект на JavaScript спалится. Полгода назад я перестал латать скрапер и полез в C…

Полгода я жил в одном и том же цикле. Собираешь скрапер, вечером он проходит все страницы, а к обеду следующего дня отдаёт сплошные капчи и 403. Добавляешь puppeteer‑stealth, сверху ещё десяток заплаток, гонишь трафик через резидентные прокси, и всё равно на третьи сутки прилетает бан. Я устал чинить симптомы и сел разбираться, что именно нас выдаёт.Вывод, к которому я пришёл, оказался неприятным. Антидетект, который живёт в JavaScript, спалится по определению. Дело не в том, что конкретные пат…

  • суббота, 11 июля 2026 г. в 00:00:11
javascript
TypeScript 7.0 — самое радикальное обновление за 10 лет

С самого начала TypeScript обещал обеспечить масштабируемость JavaScript. Строгая типизация и богатый инструментарий позволили разрабатывать нетривиальные, высококачественные приложения под любые платформы.В прошлом году наша команда анонсировала следующий шаг в масштабировании TypeScript: нативный порт на Go, который использует все возможности современного железа. Порт сделан максимально точно: новый код воспроизводит структуру и логику оригинальной кодовой базы, чтобы результаты двух компилят…

  • суббота, 11 июля 2026 г. в 00:00:10
javascript
Конвертируем цвета в JS со скоростью 6 миллиардов операций в секунду

Конвертируем цвета в JS со скоростью 6 миллиардов операций в секундуВ начале этого года я создал @colordx/core, самую быструю JS‑библиотеку для работы с цветом: парсинг различных форматов, конвертация в OKLAB/OKLCH, проверка попадания в P3-гамут и многое другое. Библиотека весит всего 7 КБ и не имеет внешних зависимостей. Высокую скорость обеспечили оптимизации под V8: мономорфизм, скрытые классы, ноль лишних аллокаций.Для повседневных задач (один цвет по клику, по ховеру, при парсинге CSS‑знач…

  • суббота, 11 июля 2026 г. в 00:00:08
javascript
Умный планировщик питания на холодильнике с drag-and-drop, автосохранением сессий и вкусным и полез…

Хочу поделиться опытом создания веб-приложения для планирования питания на неделю. Задача казалась простой: календарь, блюда, ингредиенты. Но в процессе всплыло столько нюансов — от UX на холодильнике до управления сессиями на shared-хостинге, — что решил оформить это в статью.Что получилосьPWA для планирования питания с фичами:Drag-and-drop перемещение блюд между днямиАвтоматический расчет КБЖУ и списка покупокРабота на холодильнике (крупный UI, офлайн-режим)Remember Me на 30 дней даже на shar…

  • суббота, 11 июля 2026 г. в 00:00:07
javascript
Как я сделал идеальную карту для GTA San Andreas в браузере при помощи моего движка

Это продолжение моей статьи о том, как я сделал движок совместимый с GTA San Andreas для запуска в браузере, рекомендую сначала прочитать:https://habr.com/ru/articles/1051828/А здесь речь пойдёт о том, как я готовил идеальную карту и фиксил легаси-баги игры.Что это такое — и чем это не является. OpenSA — это эксперимент и учебный проект. Цель — сам движок: браузерный рантайм, созданный совместимым с форматами RenderWare, которые использует GTA San Andreas, — а не клонировать игру или распростра…

  • пятница, 10 июля 2026 г. в 00:00:08
javascript
Сравнение ИИ-моделей при создании ремейка игры Battle City (1985) — июль 2026

Прошло полгода со времени публикции первого сравнения. Мир ИИ стремительно развивается, поэтому эксперимент пора повторить.Напомню вводные: используются только бесплатные общедоступные ИИ модели в режиме по умолчанию (никаких дополнительных настроек, только режим "Авто", зашли на сайт и сразу вставили запрос), один промпт, если модель предлагает кнопку "Продолжить", то она нажимается до завершения задачи. Некоторые модели переходят в "глупый" режим, если израсходован дне…

  • пятница, 10 июля 2026 г. в 00:00:07
javascript
Обзор библиотеки pravosleva/reactive-engine: Создаем предсказуемый реактивный граф вычислений

⚡ РеактивностьВ современной фронтенд-разработке реактивность стала стандартом дефакто. Мы привыкли к ней в Vue, React (если через хуки/стейт - здесь появляется спорный момент), Angular (Signals) и RxJS. Однако тяжелые фреймворки не всегда уместны, если вам нужно построить чистую, легковесную бизнес-логику, абстрагированную от DOM-дерева.Вот что я хочу Вам показать: https://www.npmjs.com/package/@pravosleva/reactive-engineNPM-пакет @pravosleva/reactive-engine решает именно эту задачу, предоставл…

  • пятница, 10 июля 2026 г. в 00:00:06
javascript
Когда может пригодиться экзотика в ООП: миксины/трейты/аспекты

Когда может пригодиться экзотика.Я много раз обращался к использованию множественного наследования в языках программирования и платформах. Но как правило это обращение было больше теоретическим. Я не видел в его применении значительных преимуществ, способных превзойти альтернативные подходы, с учётом рисков его применения. Но в это раз случай представился. И я покажу этот пример.Итак, множественное наследование не ново. Есть сырое жёсткое применение в лоб в плюсах. Когда появилась Scala, я при…

  • четверг, 9 июля 2026 г. в 00:00:10