Dev новости: Deno отвечает на поддержку TypeScript, nuxtJS, уязвимость в wordpress

Node.js теперь поддерживает TypeScript, что делает его более конкурентоспособным с Deno и Bun. В этой статье рассматриваются основные преимущества, а также ограничения каждой платформы. Кроме того, обсудим новшества в Nuxt.js, Google Gemma 3 и инструменты OpenAI для разработки AI-агентов.

В мире разработчиков произошли значительные изменения: Node.js теперь поддерживает TypeScript, что сближает его с альтернативными средами выполнения, такими как Deno и Bun, которые предлагают нативную поддержку TypeScript. TypeScript позволяет разработчикам определять типы данных, что помогает выявлять ошибки на ранних стадиях и предотвращает проблемы во время выполнения, часто встречающиеся в JavaScript.

Node описал преимущества TypeScript следующим образом: «Он добавляет дополнительный синтаксис к JavaScript для более тесной интеграции с вашим редактором. [Это может] выявлять ошибки на ранних этапах в вашем редакторе или в CI/CD пайплайне, а также упрощает написание поддерживаемого кода.»

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

TypeScript предоставляет Node дополнительные преимущества, включая статическую типизацию, которая позволяет проверять тип переменной на этапе компиляции до выполнения программы. Это помогает структурировать код по мере его роста, как подчеркнули авторы блога Deno, Райан Дал и Энди Цзян.

Они отметили две основные задачи TypeScript:

1. Проверка типов, чтобы убедиться, что переменные соответствуют заявленным типам.
2. Удаление типовых аннотаций для транспиляции. В TypeScript разработчики могут добавлять аннотации типов в код для повышения читаемости и выявления потенциальных ошибок. Удаление типовых аннотаций обычно происходит в процессе сборки, когда код преобразуется из языка с аннотациями типов (например, TypeScript) в язык без них (обычный JavaScript). Транспилеры преобразуют исходный код, написанный на одном языке программирования, в исходный код на другом.

Deno объяснил, как работает интеграция с Node.

«Это по сути интегрирует функциональность, ранее предоставляемую ts-node, напрямую в Node, упрощая выполнение TypeScript,» — написали они. «Поддержка TypeScript в Node заменяет типовые аннотации пробелами, что приводит к действительному JavaScript…»

Однако Дал и Цзян отметили, что есть ограничения в этом подходе, включая:

— Отсутствие встроенной проверки типов, что означает, что по-прежнему необходимы внешние инструменты, такие как tsc.
— Отсутствие поддержки JSX или TSX: «Node обрабатывает .ts, .mts и .cts, но проекты на React (.tsx) и JSX по-прежнему требуют внешних транспилеров или бандлеров, таких как esbuild, Babel или tsc,» — добавили они.
— Ручное управление конфигурацией tsconfig.json: «Проверка типов по-прежнему зависит от внешней конфигурации через tsconfig.json,» — подчеркнули они. Node.js игнорирует файлы tsconfig.json, согласно InfoQ.

В отличие от этого, Deno предлагает более простой подход.

«Deno упрощает веб-программирование, предоставляя один исполняемый файл с полностью интегрированной инструментальной цепочкой TypeScript,» — отметили Дал и Цзян. «Этот подход предлагает преимущества TypeScript с минимальной конфигурацией, упрощая тестирование, форматирование и рабочие процессы компиляции.»

Интеграция TypeScript в Deno состоит из трех основных компонентов:

1. Выполнение: V8 от Google выполняет JavaScript, но не TypeScript напрямую.
2. Проверка типов: компилятор TypeScript от Microsoft, реализованный на JavaScript, внутренне упакован.
3. Удаление типов: SWC, высокопроизводительный парсер на Rust, эффективно удаляет типы без выполнения JavaScript.

Они добавили, что поддержка TypeScript охватывает всю инструментальную цепочку Deno.

Nuxt.js добавляет поддержку ленивой гидратации.

Версия 3.16 Nuxt.js внедряет поддержку ленивой гидратации, позволяя разработчикам контролировать момент активации компонентов. Nuxt является открытым фреймворком для веб-приложений, построенным на основе Vue, популярного JavaScript-фреймворка для создания пользовательских интерфейсов.

Ленивая гидратация может улучшить начальную загрузку и время до взаимодействия, как отметил Даниэль Ро, ведущий команды Nuxt. Nuxt уже предлагает архитектуру Islands, которая определяет, какие части страницы статичны, а какие интерактивные. Ленивая гидратация позволяет управлять временем активации интерактивных частей. Оба подхода часто используются вместе, так как ленивая гидратация может оптимизировать гидратацию отдельных «островов».

Обновление также включает другие функции и улучшения производительности.

Например, Nuxt упростил процесс создания проектов с помощью create-nuxt, нового инструмента для инициализации проектов Nuxt.

«Это облегченная версия nuxi init — всего одна шестая от объема и упакованная в один файл со всеми встроенными зависимостями, чтобы вы могли начать как можно быстрее,» — написал Ро.

Теперь новый проект можно создать с помощью:
npm create nuxt

Команда Nuxt также реализовала ряд улучшений производительности, таких как:

— Использование exsolve для разрешения модулей вместе с остальной частью экосистемы unjs (nitro, c12, pkg-types и др.), что «значительно» ускоряет разрешение модулей, отметил Ро;
— Более умные пути разрешения модулей, которые придают приоритет прямым импортам для большей эффективности;
— Устранение дублированного разрешения алиасов Nitro для более аккуратной обработки файлов;
— Оптимизация loadNuxt за счёт пропуска ненужных шагов разрешения для более быстрого старта.

«Для наглядности, мой личный сайт roe.dev загружается на 32% быстрее с v3.16, а Nuxt.com — на 28% быстрее,» — добавил Ро. «Надеюсь, вы увидите аналогичные результаты!»

Google запускает Gemma 3, новый инструмент для проверки безопасности AI.

На этой неделе Google представил Gemma 3, набор легковесных открытых моделей, созданный на основе технологий Gemini 2.0. Вице-президент по исследованиям Google DeepMind Клемент Фарабет и директор Трис Уоркентин представили модели в блоге, опубликованном в среду.

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

Модели Gemma являются открытыми и поставляются с открытыми весами. Gemma 3 доступна в следующих размерах: 1B, 4B, 12B и 27B.

Меньшие языковые модели становятся все более популярными по мере того, как организации начинают создавать собственные AI-приложения и AI-агентов.

Google также запустил ShieldGemma2, который представляет собой 4B инструмент проверки безопасности изображений, построенный на основе Gemma 3.

«ShieldGemma 2 предоставляет готовое решение для проверки безопасности изображений, выводя метки безопасности по трем категориям: опасный контент, сексуальный и насилие,» — говорится в сообщении. «Разработчики могут дополнительно настраивать ShieldGemma под свои нужды и потребности пользователей.»

Академическим исследователям стоит отметить, что Google также предлагает Академическую программу Gemma 3, которая позволяет исследователям подавать заявки на получение кредитов Google Cloud (стоимостью 10 000 долларов на каждую награду) для ускорения своих исследований на основе Gemma 3. Процесс подачи заявок открылся на этой неделе и продлится четыре недели.

OpenAI выпускает инструменты для разработки AI-агентов.

OpenAI представила «первый набор строительных блоков», чтобы помочь разработчикам более эффективно создавать агентов на своей платформе. AI-агенты определяются как системы с поддержкой AI, которые могут независимо автоматизировать задачу.

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

Чтобы поддержать разработку AI-агентов, на этой неделе компания выпустила новый API Responses, который «объединяет простоту API Chat Completions с возможностями использования инструментов API Assistants, позволяя разработчикам создавать основную логику агентов,» — объяснила OpenAI. Включенные в API инструменты позволяют проводить веб-поиск с использованием той же модели, которая управляет поиском в ChatGPT, а также поиск файлов и использование компьютера с той же моделью, что и в Operator. OpenAI добавила, что это дает AI-агентам доступ к необходимой информации и инструментам для их полезности.

Также представлен новый SDK агентов для оркестрации одноагентных и многоагентных рабочих процессов, а также интегрированные инструменты для наблюдения, чтобы отслеживать и проверять выполнение рабочих процессов агентов.

Для получения дополнительной информации разработчики могут ознакомиться с видео из прямой трансляции с некоторыми членами команды, работавшими над инструментами.

New York Times переходит с Enzyme на React Testing Library.

В New York Times опубликовали мини-кейс о своих самых больших трудностях при обновлении основной библиотеки React своего сайта с React 16 до React 18.

Оказалось, что одной из главных проблем было преобразование их кодовой базы из Enzyme, утилиты тестирования JavaScript, специально предназначенной для компонентов React, в React Testing Library.

React Testing Library — это популярная утилита для тестирования JavaScript, которая фокусируется на тестировании компонентов React с точки зрения пользователя. История объясняет, что существуют значительные различия в модульном тестировании между этими двумя библиотеками. В ней подробно описан процесс обновления New York Times и приведены примеры кода, чтобы разработчики могли увидеть различия между Enzyme и React Testing Library.

Обнаружена уязвимость в плагине WordPress.

Word Fence обнаружил уязвимость в плагине All-in-One WP Migration and Backup — плагине с более чем 5 миллионами установок, по данным SearchEngine Journal. Уязвимость высокой степени серьезности была обнаружена и исправлена.

«Работа этой уязвимости заключается в том, что плагин WordPress обрабатывает потенциально вредоносные данные во время восстановления резервной копии, не проверяя их должным образом,» — сообщает SearchEngine Journal. «Но из-за узкого окна атаки это делает эксплуатацию менее очевидной.»

Читайте также
Dev новости: Deno 2.0 и обновления Angular
Dev новости: Deno 2.0 и обновления Angular
Dev новости: Deno 2.0 и обновления Angular

Мир веб-разработки продолжает стремительно развиваться, и на этот раз на сцене появляются важные обновления, которые обещают изменить будущее программирования и развертывания приложений. Команда Deno представила значительное обновление — Deno 2.0, а разработчики Angular внесли серьёзные изменения в API effect(). Кроме того, компания Anthropic запустила новый API, специально разработанный для обработки больших объёмов задач. Давайте разберём, что эти изменения означают для отрасли.

Recraft V3: новый уровень возможностей для дизайнеров с помощью ИИ
Recraft V3: новый уровень возможностей для дизайнеров с помощью ИИ
Recraft V3: новый уровень возможностей для дизайнеров с помощью ИИ

Компания Recraft представила Recraft V3 — инновационную версию своей модели ИИ, которая обещает преобразить язык дизайна и вывести его на новые высоты. Этот релиз ставит перед собой амбициозную цель: превзойти по качеству генерации изображений таких лидеров, как Midjourney и OpenAI, и при этом предложить непревзойденные возможности работы с текстом.

Dev новости: утверждение спецификаций ECMAScript 2024 и использование WasmGC в Google Sheets
Dev новости: утверждение спецификаций ECMAScript 2024 и использование WasmGC в Google Sheets
Dev новости: утверждение спецификаций ECMAScript 2024 и использование WasmGC в Google Sheets

Утверждена спецификация EMCAScript 2024, wasmGC в GoogleSheets и новые возможности для разработчиков в Shopify

Dev новости: OpenAI запускает новый интерфейс ChatGPT, WaveMaker для мобильных приложений
Dev новости: OpenAI запускает новый интерфейс ChatGPT, WaveMaker для мобильных приложений
Dev новости: OpenAI запускает новый интерфейс ChatGPT, WaveMaker для мобильных приложений

На этой неделе компания OpenAI представила бета-версию нового интерфейса ChatGPT — canvas, предназначенного для решения задач, связанных с программированием и написанием текстов. Это новшество направлено на преодоление ограничений обычного чата, предоставляя пользователям возможность работать в двухпанельном режиме.