Oracleは約2年前、Apache FoundationにNetBeansを寄贈するプロセスを開始した。最初の大規模なコード提供が行なわれたのはほぼ12ヶ月前だ。それ以来、新たな組織へのカットオーバの終結に向けて、膨大な両のエンジニアリング作業が続けられている。このプロセスとは別に、NetBeansコミュニティは、新たなメジャーリリースを含めた前進を続けている。プロセスを統括する、OracleシニアプリンシパルプロダクトマネージャのGeerjan Wielenga氏に話を聞いた。

InfoQ: InfoQ読者のために時間を頂いて、ありがとうございます。まず最初に、NetBeansのApacheプロジェクトへの移行の状況について教えてください。作業中に何か意外な出来事はあったのでしょうか？

Wielenga: プロセスはゆっくりと、緻密に行われています。ツールの将来を気にしない企業ならば、ソフトウェア財団に寄贈するようなことはしません。そんな企業は、単にツールの開発を止めて、“みんな、もう終わりだ”と世の中に向かって言うだけでしょう。私が今も驚いているのは、OracleがApacheにNetBeasnを寄贈しようとしていることの真剣さです。例えば、多数の開発者だけでなく、Oracleの法務チームまで関与しているのです。NetBeansの一部分をApacheに寄贈する前に、厳密な監査とコード整理が実施されています。 膨大なプロセスで、まだ完了はしていません。現時点で、一般的なNetBeansユーザが使用する機能の大部分はApacheに寄贈されていて、すでにGitHub上にありますが、C/C++ツールやその他の一連の機能、ドキュメントなど、今後実施される作業もたくさん残っています。 ご覧頂けるとおり、Apacheには現在、7,493,322行のNetBeansコードがあります。これはApacheのディスク領域の4.38パーセントに当たります。そのサイズと複雑さを他のプロジェクトと比較した場合、Apache NetBeansは飛び抜けて大規模なApache Projectになっているのです。

InfoQ: NetBeansの新バージョンにはたくさんの新機能と進展が含まれているという噂ですが、その件について話して頂けますか、またそれらは、NetBeansのユーザやJava開発者にはどのような意味があるのでしょう？NBを試してみたいと思うかも知れない開発者にとって、新リリースのどのような面が魅力的だと思いますか？他のIDEとの差別化についても教えてください。

Wielenga: NetBeansの“すぐに使える(out of the box)”という面が常に強みです。NetBeansを構成する他のモジュールがまだ寄贈プロセス中であるため、現行のリリース9.0ではJava SEの機能が中心ですが、最終的には、これまでNetBeansにあったものすべてが、Apache Way(Apacheのやり方)に一致する限りにおいて、すべてNetBeansの一部になります。 例えば、GPLライセンスのものはAoacheのリリースポリシに適合しないので、すでにいくつかの機能、特にHibernateやJSR 295 BeanBindingがリリースから削除されなくてはなりませんでした。ただし、これらの機能はApacheからはリリースされませんが、これらのテクノロジを使った外部プラグインを作成して、自分自身で配布する分にはまったく問題はありません。 現時点では、Apache NetBeansはJava SE開発者向けに特化しています。ただし、NetBeans IDE 8.2プラグインセンタを登録することで、8.2リリースからにはなるのですが、JavaScriptやJava/Jakarta EE、PHP、Groovyを使うためのツールなど、他の機能を有効にすることができます。Apache NetBeansの新機能としては、JDK 9 Jigsawモジュールシステムや、JDK 9 JShellを使うための機能などがあります。JDK 10サポートとしては、JDK 10 LVTI機能を使用するためのエディタ拡張が含まれています。newとvarの相互変換などの新しいvarサポートがその一例です。

InfoQ: 新しいリリースサイクルの話に移りましょう — ツールメーカとしてのNetBeansに、リリースペースの短期化やクラスフォーマットの変更、その他の新たなモデルの様相はどのように影響するでしょうか？

Wielenga: おそらく、少なくとも当初に関しては、JDKのリリースナンバには合わせないと思います。OracleがSunを引き継いだ時点から、NetBeansのリリースはJavaリリースを追っていました — JDK 7とNetBeans 7、JDK 8とNetBeans 8、というようにです。Apache NetBeansコミュニティが他の言語やテクノロジに優先する形で、今後もJavaに歩調を合わせるべきかという議論はひとまず置くとしても、現在の短いリリースサイクルに合わせるのは難しいでしょう。 それとは別ですが、Oracleが今後、ツーリングに関与するかどうかは明確になっていません。Javaはその歴史の中で初めて、スポンサ企業がまったくツーリング戦略を持たず、他の企業とまったく同じラインにまで後退した状態にあります。IntelliJ IDEAはますますKotlinへのルートを進めているようですし、MicrosoftのVisual StudioはIDEを目指してはいません。さらに一部では、IDEはもはや関係ないという意見もあるようです。これからはテキストエディタだ、とでも言いたいのでしょう。 Javaの優位性の大きな根拠となっているのは、過去数十年にわたって競合を続けてきた強力なIDEグループの存在です。現在の断片化は、残念ながらJavaにも影響を与える可能性があります。他のテクノロジや言語が過剰であることの意義が疑問視されている点を考慮すれば、これが行き着くのはただひとつ、OracleのJavaに対するコミットメントに関する問題です。 NetBeansはこれまで主としてJavaに忠実でありました。Javaで作られていて、Java自体に依存しているのですから、NetBeansはJavaの方向性を強く引き継いでいます。しかしながら、当然、保証はありません。もしもApache NetBeansコミュニティが一致して、PHP開発者あるいはKotlin開発者を優先するという決断を下すのであれば、それもまた可能な方向性です。Apacheの下では全員の投票が平等ですから、Apacheプロジェクトの方向性を事前に決定できる企業や組織は存在しないのです。

InfoQ: さまざまな調査では、Java IDEマーケットはIntelliJが最も広く使われる方法に向かっていて、Eclipseがそれに続き、NBはやや遅れを取っているという結果が出ています。この評価は全体として正確だと思われますか？

InfoQ: NetBeans自体の開発に参加しているコミュニティの規模はどの程度なのでしょう？関心のあるJavak開発者がコミュニティに参加するには、どうすればよいのでしょうか？

Wielenga: コードはGithubにホストされているので、コントリビュータグラフを公開したり、NetBeans開発者およびユーザ向けにメーリングリストを提供したりしています。参加者になる意思のある開発者はいつでも歓迎します(NetBeansコミュニティは親しみやすさで有名です)し、あらゆるレベルの開発者が参加する方法を用意しています。

InfoQ: 今後についてはどうでしょう？ロードマップには何がありますか？開発者に対するこれまでの全体的な影響はどのようなもので、今後はどうなると思いますか？

InfoQ: その他に、読者に伝えておきたい考えやコメントはありますか？

Java 9および10に対応したNetBeansバージョン9は、間もなく出荷される。