Запуск C из JavaScript
У серверного JavaScript-движка Bun появился новый трюк. Вы предоставляете ему файл на языке C, и он позволяет вам вызывать функции C из JavaScript. Гений или безумие?
Команда Deno выпустила релиз-кандидат для Deno 2.0, который включает в себя все, что ожидается в финальном релизе. Это самое крупное обновление с версии 1.0, вышедшей в мае 2020 года, с такими серьезными изменениями, как внедрение глобального процесса Node.
Deno построен на Rust и по умолчанию считается безопасным, так как не имеет доступа к файлам, сети и окружению, если это не разрешено явно.
Deno призван стать альтернативой Node.js, но пока не получил широкого распространения, несмотря на встроенную поддержку модулей TypeScript и ECMAScript.
Одно из главных изменений в Deno 2 - работа с глобальными переменными. Глобальная переменная window была удалена, и теперь доступен процесс Node. В Deno v1.0 был добавлен глобал window с целью сделать Deno как можно более совместимым с браузерами. Это привело к обратному результату, так как многие библиотеки проверяют, выполняются ли они в браузере, с помощью глобальной переменной window вместо того, чтобы проверять существование DOM. Это привело к появлению целого класса ошибок в библиотеках, которые в противном случае работали бы в Deno, поскольку window была глобально доступна.
В то время как window была удалена, глобальная переменная процесса была добавлена по просьбам пользователей. Разработчики Deno говорят, что хотя уже давно можно использовать process, импортируя его из модуля node:process, многие популярные фреймворки полагаются на его наличие в глобальной области видимости. Это дополнение должно означать, что большее количество кода, изначально написанного для Node.js, будет работать без изменений в Deno.
Другие изменения улучшают управление зависимостями, а несколько важных API теперь включены в стабильные версии, а не в предыдущие нестабильные варианты. К ним относится WebGPU, JavaScript API из веб-браузеров для эффективного использования графического процессора устройства. Среди других улучшенных API - FFI (foreign function interface) API, используемый для вызова нативного кода, и createHttpClient.
Также улучшена поддержка CommonJS. Предыдущие версии Deno предлагали лишь ограниченную поддержку CommonJS через ручное создание require.
В заявлении о релиз-кандидате команда Deno сказала:
«Хотя мы твердо верим, что модули ES - это будущее JavaScript, в 2024 году ландшафт все еще включает множество библиотек и проектов, полагающихся на CommonJS».
В связи с этим в Deno 2 было сделано несколько улучшений, чтобы облегчить работу с модулями CommonJS и сделать переход на модули ES проще. Самое главное - теперь Deno может выполнять файлы CommonJS при условии, что они используют расширение .cjs. Deno не ищет файлы package.json и опцию type, чтобы определить, является ли файл CommonJS или ESM.
Последнее изменение, на которое стоит обратить внимание, заключается в том, что утверждения импорта были отменены в пользу атрибутов импорта. Это изменение было сделано потому, что предложение претерпело значительные изменения, включая обновление ключевого слова assert на with и переименование в Import Attributes. Кроме того, некоторые браузеры (например, Chrome) уже удалили поддержку ассертов импорта.
Релиз-кандидат Deno 2.0 доступен уже сейчас.
У серверного JavaScript-движка Bun появился новый трюк. Вы предоставляете ему файл на языке C, и он позволяет вам вызывать функции C из JavaScript. Гений или безумие?
Компания Apple выпустила Swift 6, в котором улучшена поддержка написания параллельного кода, в частности, появился новый, дополнительный режим языка, который анализирует код во время компиляции и диагностирует возможные гонки данных.
Открытое письмо с более чем 10 000 подписей обвиняет Oracle в отказе от торговой марки JavaScript и призывает компанию освободить ее.
Продолжаем добавлять языки программирования для Вас.
Впереди много интересного!
Только свежие новости программирования и технологий каждый день.
Комментарии