Graalvm (наконец) получает Java для webassembly

БАРСЕЛОНА — Граалвм теперь получает выгоду от бэкэнда Webassembly (WASM), так что код и приложения Java могут быть собраны непосредственно в модули WASM. Считается, что разработка и веха, разработка должна служить потенциальным благом не только для пользователей Java, но и для эволюции Webassembly в целом.

«Это фантастическая новость как для Java, так и для Wasm. Это расширяет основное принятие для Webassembly, особенно в корпоративной среде, где Java распространена»,-генеральный директор Endor, стартап, даниэль Лопес, стартап, который позволяет запускать программное обеспечение на стороне на стороне на стороне, и соучредитель и ранее генеральный директор Bitnami, рассказал новый стек. «Это также помогает внедрить Java во многих новых сценариях, таких как браузеры».

До сих пор Java была своего рода заброшенным ребенком. Модули webassembly были более благоприятной по ряду причин — что мы не будем здесь вдаваться — с C и C ++, ржавчиной и ходом, и теперь даже Python встроен как интерпретатор.

Java является любимым языком разработчиков, но сообщество давно стремится решить свои недостатки, такие как нежилые спецификации задержки и его относительную тяжесть по сравнению с другими языками программирования, особенно для запуска приложений в браузере, без серверов, Edge Computing и других вариантов использования.

Webassembly, конечно же, предлагает то, что можно назвать почти нулевой задержкой, иногда измеряемой всего за миллисекунд. Он приобрел тягу не только в браузере, где он был основой более десяти лет, но также и по мере того, как он расширяется в сторону краевых вычислений.

Цикорий с открытым исходным кодом был создан для того, чтобы принести некоторые преимущества WASM для Native JVM, привлекая с собой безопасность, туннель и аспекты изоляции. В качестве виртуальной машины Webassembly Stime, цикорий предназначен для того, чтобы позволить программам Webassembly работать с нулевыми нативными зависимостями или нативным интерфейсом Java (JNI). Другими словами, в то время как цикорий ранее служил превосходным интерпретатором Pure Java WASM с легкой функцией и нулевыми зависимостями, чтобы сделать его ультрапортируемым, GraAlwasm предлагает варианты использования, для которых вы, вероятно, не обязательно захотите использовать цикорий в любом случае.

Ранее Webassembly для выполнения Java через GraAlvm, который поддерживают Oracle и другие поставщики, не хватали функций сбора мусора, которые необходимы для управления памятью Java, составной компиляции, возможностей для динамического диспетчери и других функций. Но как показали, что инженеры Oracle, работающие над Graalvm, Патриком Циглером и Фабио Нифаусом, в их выступлении, будущее записи, когда -нибудь бегите в любом месте: от Java до Webassembly в WASM I/O 2025, Graalvm и Graalwasm, как было показано, преодолеют эти неудачи.

«Webassembly выходит из кода развертывания в любом месте — от центров обработки данных до браузеров, устройств IoT — и превращает его в бесшовный опыт», — сказал мне Торстен Волк, аналитик Techtarget Enterprise Strategy Group. «Поддержка Webassembly — это критический шаг для Java и ее сообщества, чтобы сбросить свое устаревшее изображение, поскольку это не только позволяет Java работать на краю, но и упрощает комбинацию приложений Java с приложениями на любом языке, который поддерживает WASM».

Демо

По словам Циглера, бэкэнд, чтобы дать возможность GRAALVM еще больше приспособиться к Java предложения WASMGC и обработки исключений. «Это значительно облегчает картирование Java с Wasm», — сказал Зиглер. «Каждый тип Java представлен как структура WebAssembly и обработка исключений-та же история, верно? По сути, он отображает почти один-к-одному для веб-сайта. Это очень помогает снизить сложность, а также помогает с размером кода».

Как объяснил и показал Циглер, сценарий Helloworld, написанный на Java, может быть около одного мегабайта. «Это кажется довольно большим — и, конечно, это так, но для программы Java это не так много», — сказал Циглер. «Кроме того, это происходит до того, как вы примените сжатие или запустите Wasmopt. Если вы сделаете все это, вы можете легко снизить размер до 300 килобитов».

Благодаря WASMGC объекты JavaScript с Java теперь можно разделить с API совместимости JavaScript GraAlvm. В то время как все взаимодействия подкреплены кодом Java, «у каждой кнопки был слушатель событий, который называл Java Code, который сделал фактическую компиляцию», — сказал Циглер.

«API обрабатывает преобразования всех различных типов для вас. Он управляет методом вызова и многое другое», — сказал Циглер. «Есть ли многое, что вы можете сделать, если вы нацеливаете на JS Encedling».

Другим преимуществом является доступность стандартной библиотеки Java или JDK. «Конечно, не все в настоящее время работает», — сказал Циглер. «Такие функции, как потоки, сеть и графика, в настоящее время вызовут исключение, если вы их позвоните. Но все это шаг за шагом».

Также доступно время выполнения JavaScript, называемое GraAljs, которая реализует интеграцию модуля Webassembly ES. Это означает, что вы можете использовать привязки JavaScript для облегчения общения на высоком уровне между Java и Webassembly, сказал Нифаус во время этого выступления. «Что бы ни было выплюнуло, вы можете использовать это для интерфейса от Java в JavaScript, а затем от JavaScript в Wasm»,-сказал Нифаус.

Полный круг

Как упоминалось выше, Java явно отсутствовала в обращении с языками Webassembly или его возможностями полиглота. В настоящее время Webassembly поддерживает ряд языков в дополнение к языкам низкого уровня, таких как Rust, C и C ++, а также более абстрактные языки, такие как JavaScript. Через GRAALVM пользователи могут запускать Java в Webassembly, что может быть потенциальным благом не только для использования Webassembly, но и для очень большого разработчика Java и сообщества пользователей.

«Я думаю, что причина, по которой новости были настолько захватывающими для всех нас в категории« Язык-терп », заключается в том, что мы наблюдали за организацией, которая опускала Java, принимала одну из самых крутых технологий виртуальных машин-Graalvm,-и придерживались стандарта Webassembly»,-недавно соучредитель Фермион и генеральный директор Мэтт Батчер сказал мне Kubecon + Cloudnativon. «Это действительно захватывающе».

По словам Волка, Sun Microsystems изначально продавала Java как язык «написать один раз, беги в любом месте». «В то время как это обещание хорошо поддержалось в мире серверов и настольных компьютеров, оно упало на краю. Аппетит виртуальной машины Java к процессору и памяти просто оказался слишком великим для ограниченных сред», — сказал он. «Введите webassembly: это разрушитель, который, наконец, выполняет оригинальное обещание Java, но без багажа, с меньшими двоичными файлами, молниеносным временем запуска, требованиями к мышлению памяти и свободой выбора вашего языка программы. Webassembly выводит трение из развертывания кода в любом месте-от центров обработки данных к браузерам к устройствам IoT-и превращает его в эксплуатацию для развертывания.

Расширенная поддержка Graalvm для Webassembly является критическим шагом для «Java и ее сообщества, чтобы сбросить свое устаревшее изображение», сказал Волк. «Это не только позволяет Java работать на краю, но и упрощает комбинацию приложений Java с приложениями на любом языке, который поддерживает WASM», — сказал он.

Оракул считался знанием потенциала для бодрящего использования Java в Webassembly с момента его введения, но он не остановился на работе, чтобы принять его для сообщества Java. (Представитель Oracle PR не ответил на вопросы нового стека по электронной почте.)

«Oracle в течение многих лет и лет вышел в Oracle. Когда впервые вышла Webassembly, озабоченность Оракула — или, может быть, даже не Oracle’s, но первоначальная реакция сообщества Java -« Подожди, это просто еще один вид биологического кода, как джава -байтод. Почему мы пытаемся заново изобрести технологию, которую мы потратили два года Дезена, совершенные? ». «Я думаю, что стало очевидно, что они достаточно различны и имеют достаточно разных вариантов использования — один из них является поддержкой модели компонента, но другой — различные профили производительности, которые вы получаете на каждом».

Сообщество постепенно начало рассматривать Webassembly как «менее угрожающую», сказал Батчер. «Java делает что-то удивительное на фронте виртуальной машины, и Graalvm стал главной виртуальной машиной Java, ориентированной на производительность»,-сказал Батчер. «Поэтому было фантастически видеть, что Oracle вносят поддержку Webassembly, использующую GraAlvm в качестве основы для этого».

«Я знаю, что это звучит резко использовать такие слова, как« технологический отстающий », но из -за их первоначального нежелания принять веб -ассемэмпюрию, они были позади даже .NET, Python, Ruby, Rust и в принятии», — сказал Батчер. «Но теперь, когда они сделали это объявление, я думаю, что большой вывод состоит в том, что экосистема Webassembly в целом теперь подтверждается каждым отдельным сообществом крупного языка — от Swift, Rust and Go, более новых, более блестящих, до C, Java и .net, классической линейки Enterprise».

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. BC Gain является основателем и главным аналитиком Revecom Media. Его одержимость компьютерами началась, когда он взломал консоль космических захватчиков, чтобы играть весь день за 25 центов в местной видеокаде в начале 1980 -х годов. Затем он … читайте больше от B. Cameron Gain

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *