Javaチャンピオンのメーリングリストで、ロンドンJavaコミュニティのリーダであるMartijn Verburg氏が次のような発表した。
私たちはJava 9以降での動作に関して、著名なライブラリがどこで脱落しているのか、どれがモジュールシステムを最小限 (自動的なモジュール化) しか使っておらず、どれが完全な方法で使っているのかを確認したいです。
LJCはすでに"Java 8/9以降の分断を最小限にするJava OSSへの資金調達"を目指すクラウドファウンディングプロジェクトを発表している。コミュニティのさらなる取り組みがクラウドファンディングのLJCのキャンペーン目標を具体化するのに役立つだろう。
この取り組みは何人かのJavaチャンピオン、Sander Mak氏やRay Tsung氏、Robert Schulte氏、Rabea Gransberger氏などによりサポートされている。彼らは調査を始めており、できるだけ多くのJava開発者に参加してもらい実際の活動へのより深い理解を得ようとしている。
InfoQはこのキャンペーンに関してMartijn Verburg氏にインタビューをした。
InfoQ「なぜ新しいキャンペーンを始めたのですか?コミュニティ内から見つけた具体的な問題で、ベンダが取り組んでいないと感じているものがあるのでしょうか?」
Verburg氏「このキャンペーンを始めたのは、Java 9での変更によりライブラリやフレームワークのいくつかで大幅なコードの修正が必要となるからです。Javaの新しいリリースサイクル、これもライブラリやフレームワークのいくつかで互換性を保つため変更が必要となるからです。
Java 9での変更と新しいリリースサイクルはオラクルによりかなりの期間はっきりと伝えられてきました。有名なライブラリやフレームワークのアップグレードを含め多くの作業も実施されました。しかし、正確に言えば少数のメンテナ/ボランティアしかいないこと、もしくは商業的な援助がないことが原因でJava 9で動作しない、かつ/または新しいリリースサイクルへの追随にもがいているといったことがまだ多くあると思います。
なので私たちはそうしたプロジェクトを割り出し、互換性がある状態にする手助けをしたいのです。そうすればアプリケーションは移行の際に著名なライブラリやフレームワークを当てにできます。」
InfoQ「モジュールへの移行で潜在的に問題がある主要なJava技術をもう割り出したのですか?」
Verburg氏「これは実際には3つの質問です。
1. 主要な技術はJava 9/10で動作しますか?
主要な技術は非常に多くのものが動作します。たとえばIntelliJやApache Maven (POMの変更が必要)、JUnit 5、Spring 5などがサポートしています。しかし注目に値する脱落者がいます。
Java EE/Jakarta EEは使えません。Apache Commonsでまだ対応作業中のライブラリがいくつかあります。そういったことです。
(とくに有名なプロジェクトのうち)どの程度の割合で互換性があるのかを見るため、Mavenセントラルを通じて解析し一連のテストを適用するつもりです。互換性があるものはかなりの割合になり一定の比率で増加しているのではと考えています。
2. 主要な技術はAutomatic-Module-Name属性を使っており、ゆえにモジュールパス上で動作するのでしょうか?
Mavenセントラルのデータマイニングが完了すればもっとよい回答になると思いますが、今は数は少ないが今後多くなっていくのではと考えています。
3. 主要な技術はmodule-info.javaを使っており、モジュールシステムを完全に受け入れているのでしょうか?
この場合もMavenセントラルのデータマイニングが完了すればもっとよい回答になると思いますが、今は数は少ないが今後ゆっくりと増えていくのではと考えています。オラクルと私たちの多くはそう見込んでいます。きちんとしたモジュール化は難しいものです!
InfoQ「自動的なモジュール化はどうですか?ライブラリに対して実行可能な長期間の解決策を提供していると思いますか?それともどちらかというと応急処置として見るべきでしょうか?」
Verburg氏「応急処置という意味合いですが、プログラマのデフォルトは'無精'なので大部分のライブラリやフレームワークのメンテナが単にこれを追加するだけでモジュールシステムを使ったアプリケーションのモジュール化 (とそうすることによってメリットを得ること) に関して気にしないのではないかというのが個人的な恐れです。
個人的な考えでは、日々の開発者がモジュール設計の困難な決断やリファクタリングをする際に役立つ、より多くのベストプラクティスとツールのサポートが必要です。モジュール化に関して私たち全員が十分信頼するような評判のよいものがあれば、後に続くアプリケーションが出てくるかもしれません。そうでなければ可能性は低いでしょう。
モジュールシステムはJDK自身とそれから得られたより小さな独自パッケージ作成機能を活用できるベンダにとっては明らかに大きな成功です。しかし日々のアプリケーション開発者からのマインドシェアや利用は得られないかもしれません。時間が経てばわかるでしょう。」
InfoQ「Javaコミュニティが"Python 2/3問題"に直面しているという実感はありますか?」
Verburg氏「JavaでのちょっとしたPython 2/3問題になっていると思います。理由は2つあります。
1.) 共通的な/有名なものをすべてJava 9以降互換にするという労力。これは明らかに解決できる問題であり前述のクラウドファンディングの試みでスピードアップできるものです。
2.) Oracle JDKへのオラクルのLTSサポート計画に対する市場の反応がまだわからないこと。リマインダですがパブリックアップデートはLTSリリースでさえ6ヶ月後に終了予定です。その後オラクルのLTSリリースのままセキュリティや安定性の修正を得たければ、(Oracle JDKに対する) オラクルからのサポートに支払いをしなければなりません。そうでなければ6ヶ月の期間かそこらでJava 12に移行しなければならないでしょう。」
Java 9への適応調査はすでに公開されており、みなさんに参加してほしい。
Rate this Article
- Editor Review
- Chief Editor Action