Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

InfoQ翻訳記事からのJavaニュースレター vol.1: Jigsawはどうなる?

2016年7月から、InfoQ.comの翻訳者として記事を翻訳しています。

https://www.infoq.com/jp/profile/%E9%98%AA%E7%94%B0-%E6%B5%A9%E4%B8%80

ほぼJava関連の記事を翻訳し続け、気づけば50記事になっていました。週1以上ペースですね。せっかく翻訳しているので、不定期で記事を引用しながらJavaの情報をニュースレターっぽく(しかしニュースレターがどんなものか自分自身わかっていない)投稿していこうと思います。もしかしたらvol.1で終わるかもしれません。

翻訳については、Javaチャンピオンからも激励をいただいております!

JigsawはJava 9からなくなるの?

“公式にはなくすと決まっていないし、なくなる可能性が高いという状況証拠もない"というのが現状ではないでしょうか。

sugarlifeさんが非常に良質な記事をまとめてくださっています。こちらを読めば、状況はすべてわかります。 cco.hatenablog.jp

状況に加えて、InfoQではさまざま関係者へのインタビューを掲載しています。JCPについて詳しくない方は、どんな登場人物がいるのか、各プレーヤーがどんな役割を果たしているのかを知ることで、Javaの仕様策定プロセスについて理解が深まると思います。

5月上旬、InfoQではJigsaw関連の記事が続出しました。翻訳順は時系列順でなかったので、公開日順に並べると次のようになります。

www.infoq.com

www.infoq.com

www.infoq.com

少し解説します。Mark Reinhold氏はJavaの中心人物です!オラクル社のJavaプラットフォームグループ、チーフアーキテクトです。

そして、Javaの仕様策定にはさまざまなフェーズがあります。この記事では、パブリックレビューというフェーズであり、ここでは投票があります。パブリックレビューの投票を通過しても、まだ最終レビューと投票があり、これを通過して最終リリースのフェーズとなります。

現在の状況

“Jigsawはパブリックレビューの投票で否決となった”というのが現在の状況です。否決になったらもうJigsawは終わり?ではなく、パブリックレビューが30日延長となります。この記事の時点ではまさにこの期間中です。その後再投票です。

投票者は誰なのか?JCP Executive Committee (EC)メンバーです。ECには選ばれた企業や個人、JUG (Java User Group)がいます。Jigsawのパブリックレビューでは、賛成が10票、反対が13票で秘訣となりました。では反対票を投じたプレーヤーはどういう観点で反対なのでしょう?Jigsawなんていらない!なのか、部分的に反対なのか、こうしたことを理解すると現在のJigsawの状況がわかります。反対票を投じたプレーヤーへのインタビューやブログ投稿から引用します。

SAP SE

関心事のすべてに対処はできないとわかっていますが、残りの期間できちんとよい折衷案(たとえば"自動的なモジュール化問題")がまだ可能であることを証明できると考えています。そして追加期間は再審議の投票に向けてよい仕様を提出するために使えると確信しています。

LJCのBen Evans氏

自動的なモジュール化に対する修正提案がもっとも重要です。

さらに考える時間を取ることで、既存のコードにどのように適用するかについてEGがいくつかのガイダンスを提供すれば、ハックする日を何日か取って、コミュニティが新しい機能提案に対しどんな反応をするか見ることができるようになるでしょう。

IBMのTim Ellison氏

JSR 376仕様は修正され、Java 9プロジェクトのスケジュールに重大な中断もなく最終ドラフト提案が提示されるだろうと私たちは自信を持っています。

(すべてhttps://www.infoq.com/jp/news/2017/05/jpms-rejectedからの引用)

30日の延長で、解決できるんじゃない?という見通しのようです。

レッドハット

レッドハットはJBoss/Wildflyで使用している、非標準のモジュールシステムがあります。そしてレッドハットはECメンバーでもあり、反対票でした。

自動的なモジュール化の命名問題

#AutomaticModuleNamesで表されます。要はmodule-info.javaを使ってモジュールとして定義していないもの(非モジュール)を、モジュールから扱う時にそれにつける名前に関する問題です。

もともとは、非モジュールはファイル名をベースに名前がつけられるということでした。しかし、ファイル名は不安定なものです。そこでMANIFEST.MFに名前を定義する項目を追加したのですが…

自動的なモジュール化における命名に関するフィードバックはエキスパートグループのメーリングリストですでに報告されていた。そしてパブリックレビューのドラフトは現状で承認されるだろうという希望とともに公開されていた。しかし、ここ数日にわたってReinhold氏は自動的なモジュール化における命名の問題を認めた。これはメーリングリストにおいて提案を修正したことに至った。しかし、これはJCP ECに承認されたパブリックレビューのドラフトに含まれなかった。最終提案には含まれないとメーリングリストで話し合われていたので、メンバーはコメントで今の内容では提案に賛成できないと述べていた。 https://www.infoq.com/jp/news/2017/05/jpms-rejected?utm_source=infoq&utm_campaign=user_page&utm_medium=link

という状況で、パブリックレビューに含まれていないということも投票に影響したようです。延長期間で、進展があるでしょう。

パブリックレビューでの各ECメンバーのコメント内容は、江草ロジ子さんのブログで翻訳されています。

orablogs-jp.blogspot.jp

vol.2はあるのか!?また次回。