A note to our readers: You asked so we have developed a set of features that allow you to reduce the noise: you can get email and web notifications for topics you are interested in. Learn more about our new features.
オラクルがJDK Enhancement Proposal (JEP) 355を通じてNashorn JavaScriptエンジンを間もなく非推奨とし最終的に今後のJava開発キット (JDK) から削除する予定であると告知した。ECMAScriptの言語構造の急速なペースでの変化で、オラクルはNashorn JavaScriptエンジンの継続が難しい仕事だと気づいた。
NashornはもともとRhinoスクリプティングエンジンに代わるものとしてJDK 8で導入された。Nashornリリースの際、これはECMAScript-262 5.1標準の完全な実装だった。加えてJavaとJavaScriptの互換性を強める新しいECMAScript 6 (ES6) 機能もあった。Nashornで、開発者はJavaScriptからJavaコードを呼び出す、またはJavaコード内からJavaScriptの関数を呼び出すことができた。NashornはJavaアプリケーション内にインタプリタとして組み込むことができ、Nashornのコマンドラインツールjjsを使ってコマンドラインからJavaScriptを実行できた。JavaからJavaScriptコードを評価するため、Nashornはjavax.script
APIを実装している。オラクルはNashornを非推奨にしてもjavax.script
APIに影響はない予定であると述べている。
Nashornの削除で、JavaScriptの存在が前提となっているアプリケーションにはもはや動作しないものがあるかもしれない。
非推奨となるJDKモジュールは具体的に次のものだ。
jdk
.scripting.
nashorn
-jdk
.nashorn.api.scripting
とjdk
.nashorn.api.tree
パッケージを含むjdk
.scripting.nashorn.shell
-jjs
ツールを含むjdk
.
dynalink
- Dynalinkサポートライブラリを含む
Oracle LabsのシニアリサーチディレクタであるThomas Wuerthinger氏はGraalVMがNashornよりパフォーマンスがよく、よりECMAScriptの互換性がある十分な代替物であると述べている。GraalVMは本番環境ではまだ利用できないが、Wuerthinger氏はNashornが非推奨になる前に開発コミュニティがGraalVMベースのJavaScript実装を関連プラットフォームすべてで本番環境に利用できるようにしていくだろうと断言している。
#GraalVMベースのJavaScript実装はNashornが非推奨になる前に関連プラットフォームすべてで本番環境に利用できるようになるだろう。パフォーマンスがよくなり、最新のECMAScript標準と完全に互換性がある。
— Thomas Wuerthinger氏 (@thomaswue) 2018年6月7日
今後のJDKフィーチャーリリースで型とモジュールを実際に削除する際には別のJEPが提出される予定だ。
開発コミュニティからのフィードバックにはすべて関心を持たれている。とくにビジネスロジックにNashornを多く使っているところからのものはそうだ。オラクルは開発者からのフィードバックが十分にあればJEP 335を取り消す意思があるらしい。
オプションとなるのは、信頼できる開発者たちがNashornを継続して前に進めるという明確な意思を表現することです。JEPが統合される前にそれが起こればこのJEPは取り消されるでしょう。このJEPが統合されたあとに起これば、Nashornが削除される前であれば追加のJEPで非推奨を取り消すでしょう。
オラクルによりNashornの利用は継続がとても困難となり、JEP 335が可決されるかどうかは理想的には反対意見が決めるだろう。Nashornを使っている開発者は、フィードバックをオラクルに提供すべきである。これが実際のNashornの利用に関してよりよい実態を教えてくれるからだ。
読者はInfoQのJavaホームページにアクセスすると、Java関連のニュースを今後も得ることができる。
Rate this Article
- Editor Review
- Chief Editor Action