Веб-фреймворк Hono добавляет функцию генерации статических сайтов
Быстрый и легкий фреймворк работает на Node, Deno, Bun, Cloudflare, Fastly, Vercel и других JavaScript-платформах.
CheerpJ - это среда выполнения Java-to-Javascript и компилятор, который может преобразовать любое Java-приложение в HTML5 для рендеринга в браузере. Версия 3.0 была полностью переписана с нуля.
Разве не здорово иметь возможность запускать Swing, устаревшие Java GUI-приложения или Applets в браузере?
Сценарии использования CheerpJ, по словам его разработчиков Leaning Technologies, сводятся к трем направлениям:
Если вы думали, что в наше время устаревшие приложения уже не используются, подумайте еще раз. Огромный рынок лежит за корпорациями, которые все еще, скажем, работают на Oracle Forms с Java 8 и апплетами, для запуска которых нужен специальный браузер ESR Firefox, все еще поддерживающий java-плагин.
Многие предприятия используют такие устаревшие стеки и все еще говорят о Java. Например, большинство компаний из списка Fortune 500, и причин для этого много. Самая важная из них, которую предприятия ценят больше всего, - обратная совместимость, поскольку у них, как известно, аллергия на радикальные обновления и апгрейды. Системы, которые работали 20 лет назад и были написаны на Java 5, должны быть способны компилироваться и работать на 8-й версии. Стабильность - вот что важно.
Поэтому возможность переносить такие приложения в современное время и запускать их в любом браузере без изменений в базовой инфраструктуре - это то, что очень востребовано. Поэтому основной целевой аудиторией CheerpJ являются реальные корпоративные приложения.
Для поддержки такого важного начинания CheerpJ поставляется с набором других функций:
Режим библиотеки позволяет напрямую использовать методы, объекты и массивы Java из JavaScript. Этот API был разработан с учетом преимуществ async/await, чтобы чувствовать себя более естественно при использовании, не жертвуя при этом гибкостью. Загрузка библиотеки осуществляется просто - вызовом cheerpjRunLibrary.
В качестве практического примера можно привести несколько строк кода, позволяющих сгенерировать PDF из JavaScript с помощью популярной библиотеки iText:
Вы можете реализовать нативные методы Java (JNI) непосредственно в JavaScript с помощью удобного интерфейса.
Эта возможность также может быть использована для взаимодействия с JavaScript и DOM API из Java. Можно реализовать "родные" методы Java (которые обычно реализуются на C/C++ или другом AOT-компилируемом языке) в JavaScript, аналогично тому, как это делается в обычном Java с помощью Java Native Interface (JNI).
Конечно, если вы хотите перенести приложение на C/C++ в веб, есть также Cheerp C++, который позволяет компилировать практически любой код на C/C++ в WebAssembly и JavaScript.
Хотя в первую очередь Cheerp C++ используется для переноса существующих библиотек и приложений на C/C++ в HTML5, его также можно использовать для написания высокопроизводительных веб-приложений и компонентов WebAssembly с нуля. С помощью Cheerp код на языке C/C++ компилируется в JavaScript/WebAssembly, оптимизируется, получает нужные интерфейсы JavaScript и может быть легко интегрирован в веб-приложение.
Версия на C++, в отличие от Java-версии, также имеет открытый исходный код, о чем мы писали в статье Cheerp C++ To Webassembly Compiler Now Open Source. Несмотря на то, что CheerpJ имеет закрытый исходный код, он, тем не менее, бесплатен для личного использования.
Здесь также важно отметить, что текущим ограничением CheerpJ является то, что он работает только на Java 8, что может быть достаточно для запуска устаревших приложений на основе апплетов, но не подходит для современного стека. Однако в дорожной карте проекта запланирована поддержка нескольких версий Java, а также нескольких сред выполнения.
Семейство сред исполнения Cheerp является дополнением к другим способам запуска WebAssembly-приложений.
Одна из таких альтернатив, как мы рассмотрели в статье Running PostgreSQL Inside Your Browser, заключается в создании виртуальной машины v86 на основе образа Alpine Linux и установке на нее Postgres, чтобы он мог работать в браузере, поскольку v86 эмулирует x86-совместимый процессор и аппаратное обеспечение, транслируя машинный код в WebAssembly во время выполнения.
Другой альтернативой, о которой мы недавно рассказывали в Wasmer JS SDK - WebAssembly In The Browser, является использование WASI(X) от Wasmer:
WASIX - это расширение системного интерфейса WebAssembly (WASI), призванное сделать WebAssembly (Wasm) более совместимым с POSIX-программами, обеспечивая беспрепятственное выполнение более сложных приложений как в браузере, так и в серверной среде.
Чтобы убедиться в возможностях WebAssembly, посмотрите этот пример Browsercraft, который представляет собой демонстрацию Minecraft 1. 2. 5, запущенную в браузере без изменений и работающую под управлением CheerpJ.
Существует также онлайн-площадка, где вы можете писать Java-код и видеть его рендеринг в реальном времени с помощью CheerpJ, а также плагин CheerpJ Applet Runner Chrome, с помощью которого вы можете запускать устаревшие Java-апплеты в Chrome без необходимости установки Java.
Быстрый и легкий фреймворк работает на Node, Deno, Bun, Cloudflare, Fastly, Vercel и других JavaScript-платформах.
Изменение в реализации циклов for в Go 1.22 позволяет избежать случайных ошибок совместного использования. В обновлении также улучшена оптимизация времени выполнения.
В версии jQuery 4.0, которая сейчас находится в состоянии бета-версии, прекращена поддержка ряда старых браузеров и удалены ранее устаревшие API. В новом выпуске также появилась поддержка Trusted Types.
Продолжаем добавлять языки программирования для Вас.
Впереди много интересного!
Только свежие новости программирования и технологий каждый день.
Комментарии