一般的に信じられていることとは異なり、Javaはまだ完全に終わったわけではなく、特にソフトウェア業界では、全体で2番目に人気のあるプログラミング言語です。
非常に活発なコミュニティ、豊富なツールのエコシステム、膨大な数のライブラリとフレームワークがあり、後方互換性を保ちながら適応と進化が可能で(ほとんどの場合)、今でも業界で広く使われています。
最新のエンタープライズ・アプリケーション
Javaはサーバーサイドやネイティブ・アプリケーションに最適な環境を提供しますが、最近のエンタープライズ・アプリケーション・クライアントはHTML5標準への移行が進んでいます。これは、ユーザーの要求を満たすために、幅広いブラウザ、デバイス、および環境において、より幅広い互換性を活用するためです。
HTML5アプリケーションは、HTML、CSS、JavaScriptなどの標準規格を活用しますが、これらは環境、ブラウザ、バージョンによって実装が微妙に異なることで有名です。HTML5フロントエンド開発の新しい言語と多数のフレームワークを学ぶことに加えて、Javaデベロッパーは新しいライブラリ、イベントモデル、JavaScriptで使用されるプロトタイプ指向のOOPパラダイムを理解する必要があります。
WebAssemblyとモダンブラウザはこれを完全に変えます。コンパイル・ターゲットとしてブラウザを見ることを可能にすることで、WebAssemblyはこれらのトレードオフを排除します。
これにより、JavaデベロッパーはJavaScriptの癖を学ぶ必要がなくなります。あなたが既知のもの、そしてより重要なことは、あなたのチームが既にわかっているものを使って作業することができます。学ぶべき言語が1つ減り、強力な型付けを維持できるようになります!
WebAssemblyとは?
WebAssembly、略してWASMは、Webアプリケーションのネイティブに近いパフォーマンスを約束する小さくて高速なバイナリフォーマットです。WebAssemblyは93%以上のブラウザでサポートされている標準規格です(2020年7月)。
WebAssemblyは、JavaScriptアプリケーションに取って代わるものではありません。むしろWASMはJavaScriptのコンパニオンだと考えてください。JavaScriptは柔軟で、動的で、人間が読めるソースコードで提供されますが、WebAssemblyは高速で、強く型付けされ、コンパクトなバイナリ形式で提供されます。
WebAssemblyはHTML5やJavaScriptと組み合わせることで、ブラウザ上で高性能なアプリケーションを実行できるようにします。どのモダンブラウザでも広くサポートされているため、Java変換ツールの理想的なターゲットです。
JavaをHTML5に変換する方法
JavaをHTML5にコンパイルするには、現在いくつかの選択肢がある:
・TeaVM - Javaバイトコードの先行時間コンパイラで、JavaScriptとWebAssemblyを生成でき、実行環境は限定されている。ブラウザをターゲットにした新しいJavaアプリケーションを書くのに優れている。
・JWebAssembly - Java バイトコードから WebAssembly へのコンパイラ。WebAssembly のバイナリまたはテキスト形式を生成できる。Java自体で書かれており、他のJavaビルドツールと統合することができます。ランタイムに制限があり(Swing、AWTを除く)、ゼロから新しいアプリケーションを書くのに適しています。
・CheerpJ - AOT Java バイトコードコンパイラと、WebAssembly と JavaScript による完全な Java ランタイムを組み合わせたもので、事実上どんな Java アプリケーションでも、手作業なしで JavaScript に変換できます。Swing、AWT、Spring、その他のJavaフレームワークと互換性があり、既存のJavaアプリケーションをHTML5に変換するためのものです。
なぜCheerpJなのか?
代替ソリューションとは異なり、CheerpJはアプリケーションのソースコードに変更を加える必要がなく、フレームワークでもないため、意見を述べることもありません。
CheerpJの主なターゲットは、Swingクライアント、Javaアプレット、Javaライブラリなど、既存のJavaクライアントアプリケーションをHTML5に変換・移行することです。
CheerpJを使ってJavaアプリケーションを変換するのは簡単です:
・CheerpJコンパイラーを使い、全ての.jarアーカイブを前もって変換します;
・結果のJavaScriptとWebAssemblyをWebサーバーにホストします;
・変換したアプリケーション(ライブラリの場合はリンク)をHTMLページに埋め込み、どのブラウザからでもアクセスできます。
CheerpJは、すべてのアプリケーションコンポーネント(変換されたアプリケーションとランタイム)が静的であるため、サーバーサイドのサポートを必要としません。CheerpJアプリケーションをCDNの後ろに置くことで、帯域幅のコストを実質的にキャンセルすることができます。
CheerpJはWindows、macOS、Linuxに対応しています。
ダウンロードはこちらから。
引用元:https://cheerpj.com/can-you-convert-java-applications-to-html5-and-webassembly-javascript/