CheerpJ 2.0:使用WebAssembly將Java應用移植到瀏覽器

LeaningTech最近發佈了CheerpJ的第二個主要版本。 CheerpJ 2.0可以將Java應用程序轉換爲HTML、WebAssembly和JavaScript的混合體,這樣開發人員就可以在瀏覽器中運行Java應用程序(包括小程序),或者將Java庫集成到Web應用程序中。 CheerpJ 2.0使用WebAssembly提高運行時的速度。

在WebAssembly和JavaScript中,CheerpJ 2.0提供了一個完整的(100%的Java 8語言)、模塊化的、優化了的Java 8 SE運行時庫。運行時由一組基於瀏覽器的各種不同功能的原生實現(例如,使用Web Worker的多線程、使用Web Audio的音頻、基於IndexedDB的文件系統訪問等等)來補充。 CheerpJ 2.0全新地利用了WebAssembly的運行時模塊,提高了運行時的速度,並減少了程序包的大小,同時降低了大量的計算成本(例如字體渲染)。

CheerpJ之前的版本爲一個簡單的增量計數器應用程序就提供了超過1MB的JavaScript。 CheerpJ 2.0通過僅交付運行時所需的組件來努力降低下載的大小。然而,在考慮了Wasm模塊和等效的JavaScript模塊在解析時間上的增加之後,CheerpJ 2.0應用程序可能仍然會顯示一個用戶可感知的等待時間(從用戶使用該應用程序時開始計時)。因此,CheerpJ並不適用於開發人員的所有用例。 LeaningTech的首席執行官Stefano De Rossi特別強調了CheerpJ不支持的目標(non-goal):

CheerpJ不打算在從頭開始編寫Web應用程序(…),我們不認爲CheerpJ是Java的Blazor等價物(…)

Rossi詳細介紹了CheerpJ努力解決的三個主要用例。第一個用例涉及到遺留Java應用程序和小程序(applet)的轉換。由於可以在現代瀏覽器中分發、訪問和使用,這些遺留應用程序的壽命可能會延長。Rossi提到,數以百計的遺留教育Java小程序可能會從中受益。

第二個用例涉及到將現有的Java客戶端遷移到基於瀏覽器的應用程序,保留現有的業務邏輯並將其轉換爲JavaScript/WebAssembly,同時用HTML重寫用戶界面。在第三個用例中,開發人員可以轉換現有的Java庫並將其集成到Web應用程序中。

Rossi在接受techUK的採訪時,總結了與WebAssembly相關的優勢:

多虧了Wasm,我們才能製造出將原生桌面應用程序和移動應用程序轉換爲標準Web應用程序的編譯器和轉換工具,這些程序可以被任何帶有瀏覽器的設備使用,而不管這些設備使用的是何種操作系統以及瀏覽器的供應商如何。

這意味着我們可以使用現有的Java、Flash或C++應用程序,這些應用程序都是任務關鍵型的,並且都花費了數年的時間來開發;也意味着我們可以將它們自動地移植到HTML5,而無需人工干預。

至關重要的是,編譯到WebAssembly意味着我們的組織不再依賴遠程執行和基於雲的虛擬化來交付應用程序了。通過使用終端用戶設備上的計算能力來運行應用程序,可以將維護和運行成本降到最低。

CheerpJ是閉源的,但它可以免費用於非商業目的以及技術評估;其他用途可能需要許可證。開發人員可以使用在線平臺編寫Java代碼,並在瀏覽器中實時渲染Java代碼。

Leaning Technologies是一家計算機軟件公司,專門從事WebAssembly和可編譯爲JavaScript的解決方案和工具的研究,以將應用程序轉換爲Web應用程序。Leaning Technologies致力於爲大型遺留應用程序提供一種自動化的、遷移低成本的、現代化的解決方案。

將Java應用程序編譯爲Web應用程序的其他解決方案包括GWT、 TeaVM、 JSweet、 Vaadin FlowJ2CL 等。 JWebAssembly開源項目當前正在開發一個Java字節碼到WebAssembly(Java-bytecode-to-WebAssembly)的編譯器。

原文鏈接:

WebAssembly Used by Java-to-Web Compiler CheerpJ 2.0 to Port Java Applications to Browsers

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章