SlideShare a Scribd company logo
1 of 49
Download to read offline
Nashorn	
  in	
  the	
  Future	
  
Oracle  Corporation  Japan
Fusion  Middleware  Business  Unit
NISHIKAWA,  Akihiro
2015年年4⽉月8⽇日  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Safe	
  Harbor	
  Statement	
  
The	
  following	
  is	
  intended	
  to	
  outline	
  our	
  general	
  product	
  direcIon.	
  It	
  is	
  intended	
  for	
  
informaIon	
  purposes	
  only,	
  and	
  may	
  not	
  be	
  incorporated	
  into	
  any	
  contract.	
  It	
  is	
  not	
  a	
  
commitment	
  to	
  deliver	
  any	
  material,	
  code,	
  or	
  funcIonality,	
  and	
  should	
  not	
  be	
  relied	
  upon	
  
in	
  making	
  purchasing	
  decisions.	
  The	
  development,	
  release,	
  and	
  Iming	
  of	
  any	
  features	
  or	
  
funcIonality	
  described	
  for	
  Oracle’s	
  products	
  remains	
  at	
  the	
  sole	
  discreIon	
  of	
  Oracle.	
  
2	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Agenda	
  
What's	
  Nashorn?	
  
8u20	
  
8u40	
  
In	
  the	
  future...	
  
1	
  
2	
  
3	
  
4	
  
3	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
What’s	
  Nashorn?
4	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Nashorn
•  Rhinoの置き換え	
  
– セキュリティ、パフォーマンスの向上
•  InvokeDynamic	
  (JSR-­‐292)	
  のProof	
  of	
  Concept	
  
5	
  
Java	
  8から導⼊入されたJavaScript	
  Engine	
  (JEP	
  174)	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Nashorn
•  ECMAScript-­‐262	
  EdiIon	
  5.1
•  javax.script	
  (JSR	
  223)	
  API
•  JavaóJavaScript間での相互呼び出し	
  
•  コマンドラインツールは  jjs
Java	
  8から導⼊入されたJavaScript	
  Engine	
  (JEP	
  174)	
  
6	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
使ってみよう
•  jjs	
  
– Hello	
  World	
  
– Lambda	
  Expression,	
  Stream	
  
•  jjs	
  –scripting	
  
– Web	
  APIを呼び出してみる	
  
•  jjs	
  –fx	
  
– WebView
7	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Lambda	
  ExpressionはFuncIonで	
  
//	
  Java	
  
array.stream().sorted(Comparator.naturalOrder())	
  
.forEach(	
  t	
  -­‐>	
  sortedArray.add(t)	
  );	
  
	
  
//	
  Nashorn	
  
array.stream().sorted(Comparator.naturalOrder())	
  
.forEach(function(t)	
  sortedArray.add(t));	
  
	
  
8	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Javaから呼び出す(1)
ScriptEngineManager	
  manager	
  =	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  new	
  ScriptEngineManager();	
  
ScriptEngine	
  engine	
  =	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  manager.getEngineByName("nashorn");	
  
//	
  評価
engine.eval("print('hello	
  world')");	
  //	
  hello	
  world	
  
engine.eval(new	
  FileReader(“hello.js”));	
  //	
  hello.js	
  
9	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Javaから呼び出す(2)
engine.eval("function	
  hello(name){	
  
    	
  	
  	
  	
  	
  	
  	
    print('Hello,	
  '	
  +	
  name);	
  }");	
  
	
  
Invocable	
  inv=(Invocable)engine;	
  
	
  
//	
  Hello,	
  Taro	
  
Object	
  obj=	
  inv.invokeFunction("hello","Taro");	
  
10	
  
JavaScriptのfunc:onを呼び出す
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Javaから呼び出す(3)
engine.eval("function	
  run(){	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  print('run()	
  called');	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }");	
  
Invocable	
  inv	
  =(Invocable)engine;	
  
Runnable	
  r=inv.getInterface(Runnable.class);	
  
Thread	
  th=new	
  Threads(r);	
  
th.start();	
  
th.join();	
  
11	
  
Script	
  func:onでInterfaceを実装する
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
8u20
12	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
8u20
•  セキュリティ⾯面の強化	
  
•  基礎部分のJIT/JDKの強化
13	
  
2014年年8⽉月リリース
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
constを  varで置き換え
•  デフォルトはfalse	
  
•  8u40でconstをサポートしたので、今後使えなくなる予定	
  
14	
  
-­‐-­‐const-­‐as-­‐var=true|false	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
ScriptからJava	
  PackageやClassへのアクセスを禁⽌止	
  
•  デフォルトはfalse	
  
15	
  
-­‐-­‐no-­‐java=true|false	
  (-­‐nj)	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
ECMAScript標準に反する構⽂文の使⽤用を禁⽌止	
  
•  Java.typeなどのExtensionは利利⽤用可	
  
•  -­‐scripting  併⽤用時には⾃自動的に無効化
16	
  
-­‐-­‐no-­‐syntax-­‐extensions	
  (-­‐nse)	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
#sourceURLと@sourceURL
•  Evalソースに名前を付ける
//#	
  sourceURL=myScript.js	
  
@sourceURL=myScript.js	
  
17	
  
JDK-­‐8032068	
  :	
  implement	
  @sourceURL	
  and	
  #sourceURL	
  direc:ves	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
クラスキャッシュ
•  当初は内部にキャッシュを保持せず、逐⼀一コンパイル	
  
•  8u20から、内部にキャッシュを持ち、コードを再利利⽤用するように	
  
•  例例:Javaから	
  
– engine.eval(new	
  URLReader(myScriptURL));	
  
•  JavaScriptから	
  
– load(url);	
  
18	
  
JDK-­‐8021350	
  :	
  Share	
  script	
  classes	
  between	
  threads/globals	
  within	
  context	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
8u40
19	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
8u40
•  パフォーマンス改善	
  
– OpImisIc	
  typing	
  (JEP	
  196)
– Code	
  Persistence	
  (JEP	
  194)	
  
•  セキュリティ	
  
– Class	
  Filter	
  (JEP	
  202)	
  
•  ECMAScript	
  6仕様の段階的なサポート	
  
– Lexical-­‐scoped	
  variables	
  and	
  constant	
  definiIon	
  (JEP	
  203)	
  
20	
  
実装されたJEP	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
JEP	
  196:	
  OpImisIc	
  Typing	
  
•  できるだけ実⾏行行時に型推論論せずに	
  
パフォーマンス向上をはかる	
  
– 演算および配列列のインデックス操作	
  
で使⽤用する特定の型(type)を仮定	
  
– 仮定した型推論論が正しくない場合、	
  
仮定を取り消してフォールバック
•  -­‐-­‐optimistic-­‐types=true|false	
  (-­‐ot)	
  
– デフォルトはfalse
21	
  
楽観的型推論論	
  –	
  Javaのようなバイトコードを⽣生成するために
int	
   long	
  
double	
  
Object	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
JEP	
  196:	
  OpImisIc	
  Typing	
  
•  nashorn.typeInfo.maxFiles	
  
– 型情報をキャッシュするためのファイルの最⼤大個数	
  
– 0でキャッシュを保持しない設定	
  
•  nashorn.typeInfo.cacheDir	
  
– 型情報をキャッシュするファイルが存在するディレクトリ	
  
• Windows:	
  ${java.io.tmpdir}com.oracle.java.NashornTypeInfo	
  
• LinuxとSolaris:	
  ~/.cache/com.oracle.java.NashornTypeInfo	
  
• Mac	
  OS	
  X:	
  ~/Library/Caches/com.oracle.java.NashornTypeInfo
22	
  
型推論論結果のキャッシュ	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
JEP	
  194:	
  Code	
  Persistence	
  
•  同じプロセス内で再利利⽤用できるようコードをキャッシュ	
  
•  メモリ使⽤用量量の削減ならびに起動時間短縮に寄与	
  
23	
  
コードキャッシュによる⾼高速化
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
JEP	
  194:	
  Code	
  Persistence	
  
•  -­‐-­‐class-­‐cache-­‐size=50	
  (-­‐ccs)	
  
– グローバル・スコープ毎のクラス・キャッシュサイズ
– デフォルトサイズは50	
  (個)
•  -­‐-­‐persistent-­‐code-­‐cache=true|false	
  (-­‐pcc)	
  
– 楽観的型推論論情報(OpImisIc	
  type	
  informaIon)も含め、ディスクにコンパイ
ル済みスクリプトを永続化	
  
– デフォルトはfalse	
  
24	
  
コードキャッシュによる⾼高速化
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
JEP	
  194:	
  Code	
  Persistence
•  -­‐pccを指定した場合の情報の永続先	
  
– デフォルトは実⾏行行ディレクトリのnashorn_code_cache	
  
– フォルダ名は変更更可能	
  
• nashorn.persistent.code.cache	
  システムプロパティ	
  
•  クラスのバイトコードだけでなく様々なメタデータを保持	
  
25	
  
コードキャッシュによる⾼高速化
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
遅延コンパイル
•  On	
  Demandでメソッドをコンパイル	
  
•  デフォルトは  true	
  
– 8u31までは試験的オプションのためfalse	
  
26	
  
-­‐-­‐lazy-­‐compilation=true|false	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
JEP	
  202:	
  Class	
  Filter	
  
•  JEP	
  202:	
  Nashorn	
  Class	
  Filter	
  
hjps://bugs.openjdk.java.net/browse/JDK-­‐8043717	
  
•  JavaScriptを使うJavaアプリケーション側で実装	
  
– jdk.nashorn.api.scripting.ClassFilter	
  
27	
  
JavaScriptからJavaクラスへのアクセスを抑⽌止
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
ClassFilter実装例例
import	
  jdk.nashorn.api.scripting.ClassFilter;	
  
	
  
class	
  MyFilter	
  implements	
  ClassFilter	
  {	
  
	
  	
  @Override	
  
	
  	
  public	
  boolean	
  exposeToScripts(String	
  s)	
  {	
  
	
  	
  	
  	
  if	
  (s.compareTo("java.io.File")	
  ==	
  0)	
  return	
  false;	
  
	
  	
  	
  	
  return	
  true;	
  
	
  	
  }	
  
}	
  
28	
  
java.io.Fileを制限したい場合
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
ECMAScript	
  6の段階的なサポート
29	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
JEP	
  203:	
  Lexically-­‐scoped	
  variable	
  and	
  constant	
  declaraIons	
  
•  -­‐-­‐language=es5|es6	
  
– デフォルトはes5	
  
– const、letを使う場合は-­‐-­‐language=es6が必須	
  
•  let	
  
– ブロックに含まれるスコープ内変数の宣⾔言に利利⽤用	
  
•  const
– letと同様、constを使って宣⾔言した定数はブロック内に⽣生存範囲を限定	
  
30	
  
スコープ内変数(let)や定数(const)の宣⾔言
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
//	
  let	
  
let	
  a=2;	
  
	
  
function	
  f(x)	
  {	
  
	
  	
  //	
  ここではaは2	
  
	
  	
  if(x)	
  {	
  
	
  	
  	
  	
  let	
  a=42;	
  
	
  	
  }	
  
	
  	
  //	
  aは2のまま
}	
  
//	
  var	
  
var	
  a=2;	
  
	
  
function	
  f(x)	
  {	
  
	
  	
  //	
  ここではaは未定義
	
  	
  if(x)	
  {	
  
	
  	
  	
  	
  var	
  a=42;	
  
	
  	
  }	
  
	
  	
  //	
  x次第でaは42もしくは未定義
}	
  
31	
  
letとvar
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
//	
  1)	
  構⽂文エラー
function	
  f(x)	
  {	
  
	
  	
  const	
  b=1;	
  
	
  	
  //	
  代⼊入不不可	
  
	
  	
  b	
  =	
  99;	
  
}	
  
	
  
//	
  2)	
  スコープその1
function	
  f(x)	
  {	
  
	
  	
  const	
  b=1;	
  
	
  	
  var	
  z=b+1;	
  //z=2	
  
}	
  
//bは未定義
var	
  y=b+1;	
  
32	
  
//	
  3)	
  スコープその2
function	
  f(x)	
  {	
  
	
  	
  const	
  b=1;	
  
	
  	
  var	
  z	
  =b+1;	
  //z=2	
  
}	
  
//bは定義可能
const	
  b	
  =	
  10;	
  
const
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Server	
  Side	
  JavaScript
33	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Server	
  Side	
  JavaScript…
•  JVMで動作するNode.js互換フレームワーク	
  
– Nodyn	
  
• Vert.x	
  +	
  Dyn.JS	
  +	
  Nejy	
  
– Trieme	
  
• apigeeによるNode.js互換フレームワーク	
  
•  最近はやりのReacIve	
  Programming	
  
– RxJS	
  
– React.JS	
  
などなど	
  
34	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
   35	
  
hVps://blogs.oracle.com/theaquarium/entry/project_avatar_update
そんな時代もあったね...
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
In	
  the	
  future...
36	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
In	
  the	
  Future
•  地道な改善	
  
– ウォームアップ時間短縮のための改善	
  
– OpImisIc	
  Typing、Code	
  Persistenceの改善	
  
•  Java	
  9	
  
– ECMAScript	
  6の完全サポート	
  
– Parser	
  API	
  for	
  Nashorn	
  (JEP	
  236)	
  
– Java	
  Flight	
  Recorder	
  
• JavaScript	
  Profiler	
  
• Nashorn⽤用のタグ	
  
	
   	
   	
  	
  	
   	
   	
   	
  ...などなど	
  
37	
  
Java	
  8u60、9、その先
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
地道な改善	
  
•  JSONパース時の性能向上のために	
  
– プロパティ情報などの⼩小さなJSONオブジェクトを取り扱う場合、  
PropertyHashMap#findElement	
  を使うと遅かった。	
  
	
  
jdk.nashorn.internal.parser.JSONParserを書き換え
38	
  
例例えば8u60では
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Java	
  Flight	
  Recorder
39	
  
JavaScript	
  Profilerの可能性
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
JEP	
  236:	
  Parser	
  API	
  for	
  Nashorn	
  
•  ⽬目的	
  
– ECMAScriptのコードをASTとして表現するためのParser	
  API	
  
– Visitorパターン	
  
– 内部実装パッケージ  (jdk.nashorn.internal.ir)	
  を使わせない	
  
•  注意	
  
– Java	
  API(スクリプトレベルのAPIではない)	
  
– 可能な限りECMAScriptの仕様に基づいてASTノードを表現	
  
40	
  
ECMAScript	
  ASTのための公開API
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
JEP	
  236:	
  Parser	
  API	
  for	
  Nashorn	
  
•  JDK9	
  b55以後で試すことが
できる	
  
•  JavaDoc
– hjps://bugs.openjdk.java.net/
browse/JDK-­‐8048176
41	
  
jdk.nashorn.api.tree	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
まとめ
42	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
まとめ
•  8u20、8u40でパフォーマンス向上の
ための機能が追加されました	
  
•  今後もNashornの開発は続⾏行行します	
  
•  是⾮非フィードバックをお願いします	
  
43	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Nashorn	
  Project
•  Nashorn	
  Mailing	
  List	
  
– nashorn-­‐dev@openjdk.java.net	
  
•  Nashorn	
  Wiki	
  
– hjps://wiki.openjdk.java.net/display/Nashorn/Main	
  
•  DEVELOPER_README	
  
– hjp://hg.openjdk.java.net/jdk8u/jdk8u-­‐dev/nashorn/file/Ip/docs/
DEVELOPER_README	
  
•  Nashorn	
  -­‐	
  JavaScript	
  for	
  the	
  JVM	
  
– hjp://blogs.oracle.com/nashorn/	
  
44	
  
hjp://openjdk.java.net/projects/nashorn/	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Safe	
  Harbor	
  Statement	
  
The	
  preceding	
  is	
  intended	
  to	
  outline	
  our	
  general	
  product	
  direcIon.	
  It	
  is	
  intended	
  for	
  
informaIon	
  purposes	
  only,	
  and	
  may	
  not	
  be	
  incorporated	
  into	
  any	
  contract.	
  It	
  is	
  not	
  a	
  
commitment	
  to	
  deliver	
  any	
  material,	
  code,	
  or	
  funcIonality,	
  and	
  should	
  not	
  be	
  relied	
  upon	
  
in	
  making	
  purchasing	
  decisions.	
  The	
  development,	
  release,	
  and	
  Iming	
  of	
  any	
  features	
  or	
  
funcIonality	
  described	
  for	
  Oracle’s	
  products	
  remains	
  at	
  the	
  sole	
  discreIon	
  of	
  Oracle.	
  
45	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
	
  	
  
	
  	
  
46	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Nashorn in the future (Japanese)

More Related Content

What's hot

Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]David Buck
 
Advanced database monitoring in modern java
Advanced database monitoring in modern javaAdvanced database monitoring in modern java
Advanced database monitoring in modern javaChihiro Ito
 
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4cCDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4cNorito Agetsuma
 
Java9新機能概要
Java9新機能概要Java9新機能概要
Java9新機能概要HonMarkHunt
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決オラクルエンジニア通信
 
Java トラブル解析支援ツール HeapStats のご紹介
Java トラブル解析支援ツール HeapStats のご紹介Java トラブル解析支援ツール HeapStats のご紹介
Java トラブル解析支援ツール HeapStats のご紹介Shinya Takebayashi
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewYuji Kubota
 
Panamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶPanamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶYasumasa Suenaga
 
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Takahiro YAMADA
 
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!bitter_fox
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-PE-BANK
 
Lt agetsuma 拡大するcdi
Lt agetsuma 拡大するcdiLt agetsuma 拡大するcdi
Lt agetsuma 拡大するcdiNorito Agetsuma
 
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4bitter_fox
 
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshellIntroduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshellbitter_fox
 
JJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめようJJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめようNorito Agetsuma
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLRyusuke Kajiyama
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」Hiroaki NAKADA
 
Java 9で進化する診断ツール
Java 9で進化する診断ツールJava 9で進化する診断ツール
Java 9で進化する診断ツールYasumasa Suenaga
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Hironobu Isoda
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Yuji Kubota
 

What's hot (20)

Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
 
Advanced database monitoring in modern java
Advanced database monitoring in modern javaAdvanced database monitoring in modern java
Advanced database monitoring in modern java
 
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4cCDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
 
Java9新機能概要
Java9新機能概要Java9新機能概要
Java9新機能概要
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
 
Java トラブル解析支援ツール HeapStats のご紹介
Java トラブル解析支援ツール HeapStats のご紹介Java トラブル解析支援ツール HeapStats のご紹介
Java トラブル解析支援ツール HeapStats のご紹介
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
 
Panamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶPanamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶ
 
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
 
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
 
Lt agetsuma 拡大するcdi
Lt agetsuma 拡大するcdiLt agetsuma 拡大するcdi
Lt agetsuma 拡大するcdi
 
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
 
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshellIntroduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
 
JJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめようJJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめよう
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
 
Java 9で進化する診断ツール
Java 9で進化する診断ツールJava 9で進化する診断ツール
Java 9で進化する診断ツール
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 

Viewers also liked

Nashorn in the future (English)
Nashorn in the future (English)Nashorn in the future (English)
Nashorn in the future (English)Logico
 
Nashorn in the future (English)
Nashorn in the future (English)Nashorn in the future (English)
Nashorn in the future (English)Logico
 
Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)Logico
 
Netty 入門 - 「Netty ベース」の何かに着手する前に
Netty 入門 - 「Netty ベース」の何かに着手する前にNetty 入門 - 「Netty ベース」の何かに着手する前に
Netty 入門 - 「Netty ベース」の何かに着手する前にTakuma SHIRAISHI
 
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向Tatsuo Kudo
 
Nettyらへん
NettyらへんNettyらへん
NettyらへんGo Tanaka
 
SORACOM Bootcamp Rec1 - SORACOM Air (1)
SORACOM Bootcamp Rec1 - SORACOM Air (1)SORACOM Bootcamp Rec1 - SORACOM Air (1)
SORACOM Bootcamp Rec1 - SORACOM Air (1)SORACOM,INC
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能についてshigeki_ohtsu
 
FXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
FXML for Structure, CSS for Styling and JavaFX as Standard GUI LibraryFXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
FXML for Structure, CSS for Styling and JavaFX as Standard GUI LibraryYuichi Sakuraba
 
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Hirofumi Iwasaki
 
JavaDayTokyo2015 [3-1]
JavaDayTokyo2015 [3-1]JavaDayTokyo2015 [3-1]
JavaDayTokyo2015 [3-1]Kenji Kazumura
 
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugJDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugYuji Kubota
 
APIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAUAPIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAUTatsuo Kudo
 
【講演資料】激変する自動車業界におけるクルマ屋の戦略
【講演資料】激変する自動車業界におけるクルマ屋の戦略【講演資料】激変する自動車業界におけるクルマ屋の戦略
【講演資料】激変する自動車業界におけるクルマ屋の戦略naoto kyo
 

Viewers also liked (18)

Nashorn in the future (English)
Nashorn in the future (English)Nashorn in the future (English)
Nashorn in the future (English)
 
Nashorn in the future (English)
Nashorn in the future (English)Nashorn in the future (English)
Nashorn in the future (English)
 
CDI 2.0 is coming
CDI 2.0 is comingCDI 2.0 is coming
CDI 2.0 is coming
 
Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)
 
Adopt a JSR: CDI 2.0 at Devoxx UK
Adopt a JSR: CDI 2.0 at Devoxx UKAdopt a JSR: CDI 2.0 at Devoxx UK
Adopt a JSR: CDI 2.0 at Devoxx UK
 
Netty 入門 - 「Netty ベース」の何かに着手する前に
Netty 入門 - 「Netty ベース」の何かに着手する前にNetty 入門 - 「Netty ベース」の何かに着手する前に
Netty 入門 - 「Netty ベース」の何かに着手する前に
 
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
 
CDI 2.0 is upon us Devoxx
CDI 2.0 is upon us DevoxxCDI 2.0 is upon us Devoxx
CDI 2.0 is upon us Devoxx
 
Nettyらへん
NettyらへんNettyらへん
Nettyらへん
 
SORACOM Bootcamp Rec1 - SORACOM Air (1)
SORACOM Bootcamp Rec1 - SORACOM Air (1)SORACOM Bootcamp Rec1 - SORACOM Air (1)
SORACOM Bootcamp Rec1 - SORACOM Air (1)
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
 
FXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
FXML for Structure, CSS for Styling and JavaFX as Standard GUI LibraryFXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
FXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
 
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7
 
JavaDayTokyo2015 [3-1]
JavaDayTokyo2015 [3-1]JavaDayTokyo2015 [3-1]
JavaDayTokyo2015 [3-1]
 
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugJDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjug
 
APIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAUAPIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAU
 
HotSpotコトハジメ
HotSpotコトハジメHotSpotコトハジメ
HotSpotコトハジメ
 
【講演資料】激変する自動車業界におけるクルマ屋の戦略
【講演資料】激変する自動車業界におけるクルマ屋の戦略【講演資料】激変する自動車業界におけるクルマ屋の戦略
【講演資料】激変する自動車業界におけるクルマ屋の戦略
 

Similar to Nashorn in the future (Japanese)

Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]David Buck
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osakaTakashi Ito
 
20161111 java one2016-feedback
20161111 java one2016-feedback20161111 java one2016-feedback
20161111 java one2016-feedbackTakashi Ito
 
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムオラクルエンジニア通信
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQLRyusuke Kajiyama
 
Java Flight Recorderの紹介 at Java Day Tokyo 2015
Java Flight Recorderの紹介  at Java Day Tokyo 2015Java Flight Recorderの紹介  at Java Day Tokyo 2015
Java Flight Recorderの紹介 at Java Day Tokyo 2015Chihiro Ito
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう幹雄 小川
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーMasaya Ishikawa
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングオラクルエンジニア通信
 
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groongaMroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groongaYahoo!デベロッパーネットワーク
 
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクルエンジニア通信
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会yoyamasaki
 
デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応歩 柴田
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006Cloudera Japan
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...Shinji Takao
 
Oracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイント
Oracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイントOracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイント
Oracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイントSolarisJP
 
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)オラクルエンジニア通信
 

Similar to Nashorn in the future (Japanese) (20)

Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
 
20161111 java one2016-feedback
20161111 java one2016-feedback20161111 java one2016-feedback
20161111 java one2016-feedback
 
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 
Java Flight Recorderの紹介 at Java Day Tokyo 2015
Java Flight Recorderの紹介  at Java Day Tokyo 2015Java Flight Recorderの紹介  at Java Day Tokyo 2015
Java Flight Recorderの紹介 at Java Day Tokyo 2015
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう
 
Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要
 
solr勉強会資料
solr勉強会資料solr勉強会資料
solr勉強会資料
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
 
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groongaMroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
Mroongaを社内クラウド的なMySQLプラットフォームに標準搭載している話 #groonga
 
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
 
デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
 
Oracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイント
Oracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイントOracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイント
Oracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイント
 
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
 
Tech deepdive#2 datastore_180317_share
Tech deepdive#2 datastore_180317_shareTech deepdive#2 datastore_180317_share
Tech deepdive#2 datastore_180317_share
 

More from Logico

Welcome, Java 15! (Japanese)
Welcome, Java 15! (Japanese)Welcome, Java 15! (Japanese)
Welcome, Java 15! (Japanese)Logico
 
Look into Project Valhalla from CLR viewpoint
Look into Project Valhalla from CLR viewpointLook into Project Valhalla from CLR viewpoint
Look into Project Valhalla from CLR viewpointLogico
 
Jvmls 2019 feedback valhalla update
Jvmls 2019 feedback   valhalla updateJvmls 2019 feedback   valhalla update
Jvmls 2019 feedback valhalla updateLogico
 
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Logico
 
Oracle Code One 2018 Feedback (Server Side / Japanese)
Oracle Code One 2018 Feedback (Server Side / Japanese)Oracle Code One 2018 Feedback (Server Side / Japanese)
Oracle Code One 2018 Feedback (Server Side / Japanese)Logico
 
ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)Logico
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Logico
 
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationLogico
 
Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)Logico
 
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)Logico
 
Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)Logico
 
Nashorn : JavaScript Running on Java VM (Japanese)
Nashorn : JavaScript Running on Java VM (Japanese)Nashorn : JavaScript Running on Java VM (Japanese)
Nashorn : JavaScript Running on Java VM (Japanese)Logico
 

More from Logico (12)

Welcome, Java 15! (Japanese)
Welcome, Java 15! (Japanese)Welcome, Java 15! (Japanese)
Welcome, Java 15! (Japanese)
 
Look into Project Valhalla from CLR viewpoint
Look into Project Valhalla from CLR viewpointLook into Project Valhalla from CLR viewpoint
Look into Project Valhalla from CLR viewpoint
 
Jvmls 2019 feedback valhalla update
Jvmls 2019 feedback   valhalla updateJvmls 2019 feedback   valhalla update
Jvmls 2019 feedback valhalla update
 
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)
 
Oracle Code One 2018 Feedback (Server Side / Japanese)
Oracle Code One 2018 Feedback (Server Side / Japanese)Oracle Code One 2018 Feedback (Server Side / Japanese)
Oracle Code One 2018 Feedback (Server Side / Japanese)
 
ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)
 
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
 
Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)
 
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
 
Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)
 
Nashorn : JavaScript Running on Java VM (Japanese)
Nashorn : JavaScript Running on Java VM (Japanese)Nashorn : JavaScript Running on Java VM (Japanese)
Nashorn : JavaScript Running on Java VM (Japanese)
 

Recently uploaded

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (9)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 

Nashorn in the future (Japanese)

  • 1. Nashorn  in  the  Future   Oracle  Corporation  Japan Fusion  Middleware  Business  Unit NISHIKAWA,  Akihiro 2015年年4⽉月8⽇日   Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 2. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Safe  Harbor  Statement   The  following  is  intended  to  outline  our  general  product  direcIon.  It  is  intended  for   informaIon  purposes  only,  and  may  not  be  incorporated  into  any  contract.  It  is  not  a   commitment  to  deliver  any  material,  code,  or  funcIonality,  and  should  not  be  relied  upon   in  making  purchasing  decisions.  The  development,  release,  and  Iming  of  any  features  or   funcIonality  described  for  Oracle’s  products  remains  at  the  sole  discreIon  of  Oracle.   2  
  • 3. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Agenda   What's  Nashorn?   8u20   8u40   In  the  future...   1   2   3   4   3  
  • 4. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What’s  Nashorn? 4  
  • 5. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Nashorn •  Rhinoの置き換え   – セキュリティ、パフォーマンスの向上 •  InvokeDynamic  (JSR-­‐292)  のProof  of  Concept   5   Java  8から導⼊入されたJavaScript  Engine  (JEP  174)  
  • 6. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Nashorn •  ECMAScript-­‐262  EdiIon  5.1 •  javax.script  (JSR  223)  API •  JavaóJavaScript間での相互呼び出し   •  コマンドラインツールは  jjs Java  8から導⼊入されたJavaScript  Engine  (JEP  174)   6  
  • 7. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   使ってみよう •  jjs   – Hello  World   – Lambda  Expression,  Stream   •  jjs  –scripting   – Web  APIを呼び出してみる   •  jjs  –fx   – WebView 7  
  • 8. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Lambda  ExpressionはFuncIonで   //  Java   array.stream().sorted(Comparator.naturalOrder())   .forEach(  t  -­‐>  sortedArray.add(t)  );     //  Nashorn   array.stream().sorted(Comparator.naturalOrder())   .forEach(function(t)  sortedArray.add(t));     8  
  • 9. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Javaから呼び出す(1) ScriptEngineManager  manager  =                            new  ScriptEngineManager();   ScriptEngine  engine  =                              manager.getEngineByName("nashorn");   //  評価 engine.eval("print('hello  world')");  //  hello  world   engine.eval(new  FileReader(“hello.js”));  //  hello.js   9  
  • 10. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Javaから呼び出す(2) engine.eval("function  hello(name){                       print('Hello,  '  +  name);  }");     Invocable  inv=(Invocable)engine;     //  Hello,  Taro   Object  obj=  inv.invokeFunction("hello","Taro");   10   JavaScriptのfunc:onを呼び出す
  • 11. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Javaから呼び出す(3) engine.eval("function  run(){                                  print('run()  called');                            }");   Invocable  inv  =(Invocable)engine;   Runnable  r=inv.getInterface(Runnable.class);   Thread  th=new  Threads(r);   th.start();   th.join();   11   Script  func:onでInterfaceを実装する
  • 12. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   8u20 12  
  • 13. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   8u20 •  セキュリティ⾯面の強化   •  基礎部分のJIT/JDKの強化 13   2014年年8⽉月リリース
  • 14. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   constを  varで置き換え •  デフォルトはfalse   •  8u40でconstをサポートしたので、今後使えなくなる予定   14   -­‐-­‐const-­‐as-­‐var=true|false  
  • 15. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   ScriptからJava  PackageやClassへのアクセスを禁⽌止   •  デフォルトはfalse   15   -­‐-­‐no-­‐java=true|false  (-­‐nj)  
  • 16. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   ECMAScript標準に反する構⽂文の使⽤用を禁⽌止   •  Java.typeなどのExtensionは利利⽤用可   •  -­‐scripting  併⽤用時には⾃自動的に無効化 16   -­‐-­‐no-­‐syntax-­‐extensions  (-­‐nse)  
  • 17. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   #sourceURLと@sourceURL •  Evalソースに名前を付ける //#  sourceURL=myScript.js   @sourceURL=myScript.js   17   JDK-­‐8032068  :  implement  @sourceURL  and  #sourceURL  direc:ves  
  • 18. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   クラスキャッシュ •  当初は内部にキャッシュを保持せず、逐⼀一コンパイル   •  8u20から、内部にキャッシュを持ち、コードを再利利⽤用するように   •  例例:Javaから   – engine.eval(new  URLReader(myScriptURL));   •  JavaScriptから   – load(url);   18   JDK-­‐8021350  :  Share  script  classes  between  threads/globals  within  context  
  • 19. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   8u40 19  
  • 20. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   8u40 •  パフォーマンス改善   – OpImisIc  typing  (JEP  196) – Code  Persistence  (JEP  194)   •  セキュリティ   – Class  Filter  (JEP  202)   •  ECMAScript  6仕様の段階的なサポート   – Lexical-­‐scoped  variables  and  constant  definiIon  (JEP  203)   20   実装されたJEP  
  • 21. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JEP  196:  OpImisIc  Typing   •  できるだけ実⾏行行時に型推論論せずに   パフォーマンス向上をはかる   – 演算および配列列のインデックス操作   で使⽤用する特定の型(type)を仮定   – 仮定した型推論論が正しくない場合、   仮定を取り消してフォールバック •  -­‐-­‐optimistic-­‐types=true|false  (-­‐ot)   – デフォルトはfalse 21   楽観的型推論論  –  Javaのようなバイトコードを⽣生成するために int   long   double   Object  
  • 22. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JEP  196:  OpImisIc  Typing   •  nashorn.typeInfo.maxFiles   – 型情報をキャッシュするためのファイルの最⼤大個数   – 0でキャッシュを保持しない設定   •  nashorn.typeInfo.cacheDir   – 型情報をキャッシュするファイルが存在するディレクトリ   • Windows:  ${java.io.tmpdir}com.oracle.java.NashornTypeInfo   • LinuxとSolaris:  ~/.cache/com.oracle.java.NashornTypeInfo   • Mac  OS  X:  ~/Library/Caches/com.oracle.java.NashornTypeInfo 22   型推論論結果のキャッシュ  
  • 23. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JEP  194:  Code  Persistence   •  同じプロセス内で再利利⽤用できるようコードをキャッシュ   •  メモリ使⽤用量量の削減ならびに起動時間短縮に寄与   23   コードキャッシュによる⾼高速化
  • 24. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JEP  194:  Code  Persistence   •  -­‐-­‐class-­‐cache-­‐size=50  (-­‐ccs)   – グローバル・スコープ毎のクラス・キャッシュサイズ – デフォルトサイズは50  (個) •  -­‐-­‐persistent-­‐code-­‐cache=true|false  (-­‐pcc)   – 楽観的型推論論情報(OpImisIc  type  informaIon)も含め、ディスクにコンパイ ル済みスクリプトを永続化   – デフォルトはfalse   24   コードキャッシュによる⾼高速化
  • 25. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JEP  194:  Code  Persistence •  -­‐pccを指定した場合の情報の永続先   – デフォルトは実⾏行行ディレクトリのnashorn_code_cache   – フォルダ名は変更更可能   • nashorn.persistent.code.cache  システムプロパティ   •  クラスのバイトコードだけでなく様々なメタデータを保持   25   コードキャッシュによる⾼高速化
  • 26. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   遅延コンパイル •  On  Demandでメソッドをコンパイル   •  デフォルトは  true   – 8u31までは試験的オプションのためfalse   26   -­‐-­‐lazy-­‐compilation=true|false  
  • 27. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JEP  202:  Class  Filter   •  JEP  202:  Nashorn  Class  Filter   hjps://bugs.openjdk.java.net/browse/JDK-­‐8043717   •  JavaScriptを使うJavaアプリケーション側で実装   – jdk.nashorn.api.scripting.ClassFilter   27   JavaScriptからJavaクラスへのアクセスを抑⽌止
  • 28. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   ClassFilter実装例例 import  jdk.nashorn.api.scripting.ClassFilter;     class  MyFilter  implements  ClassFilter  {      @Override      public  boolean  exposeToScripts(String  s)  {          if  (s.compareTo("java.io.File")  ==  0)  return  false;          return  true;      }   }   28   java.io.Fileを制限したい場合
  • 29. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   ECMAScript  6の段階的なサポート 29  
  • 30. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JEP  203:  Lexically-­‐scoped  variable  and  constant  declaraIons   •  -­‐-­‐language=es5|es6   – デフォルトはes5   – const、letを使う場合は-­‐-­‐language=es6が必須   •  let   – ブロックに含まれるスコープ内変数の宣⾔言に利利⽤用   •  const – letと同様、constを使って宣⾔言した定数はブロック内に⽣生存範囲を限定   30   スコープ内変数(let)や定数(const)の宣⾔言
  • 31. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   //  let   let  a=2;     function  f(x)  {      //  ここではaは2      if(x)  {          let  a=42;      }      //  aは2のまま }   //  var   var  a=2;     function  f(x)  {      //  ここではaは未定義    if(x)  {          var  a=42;      }      //  x次第でaは42もしくは未定義 }   31   letとvar
  • 32. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   //  1)  構⽂文エラー function  f(x)  {      const  b=1;      //  代⼊入不不可      b  =  99;   }     //  2)  スコープその1 function  f(x)  {      const  b=1;      var  z=b+1;  //z=2   }   //bは未定義 var  y=b+1;   32   //  3)  スコープその2 function  f(x)  {      const  b=1;      var  z  =b+1;  //z=2   }   //bは定義可能 const  b  =  10;   const
  • 33. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Server  Side  JavaScript 33  
  • 34. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Server  Side  JavaScript… •  JVMで動作するNode.js互換フレームワーク   – Nodyn   • Vert.x  +  Dyn.JS  +  Nejy   – Trieme   • apigeeによるNode.js互換フレームワーク   •  最近はやりのReacIve  Programming   – RxJS   – React.JS   などなど   34  
  • 35. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   35   hVps://blogs.oracle.com/theaquarium/entry/project_avatar_update そんな時代もあったね...
  • 36. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   In  the  future... 36  
  • 37. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   In  the  Future •  地道な改善   – ウォームアップ時間短縮のための改善   – OpImisIc  Typing、Code  Persistenceの改善   •  Java  9   – ECMAScript  6の完全サポート   – Parser  API  for  Nashorn  (JEP  236)   – Java  Flight  Recorder   • JavaScript  Profiler   • Nashorn⽤用のタグ                  ...などなど   37   Java  8u60、9、その先
  • 38. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   地道な改善   •  JSONパース時の性能向上のために   – プロパティ情報などの⼩小さなJSONオブジェクトを取り扱う場合、   PropertyHashMap#findElement  を使うと遅かった。     jdk.nashorn.internal.parser.JSONParserを書き換え 38   例例えば8u60では
  • 39. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Java  Flight  Recorder 39   JavaScript  Profilerの可能性
  • 40. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JEP  236:  Parser  API  for  Nashorn   •  ⽬目的   – ECMAScriptのコードをASTとして表現するためのParser  API   – Visitorパターン   – 内部実装パッケージ  (jdk.nashorn.internal.ir)  を使わせない   •  注意   – Java  API(スクリプトレベルのAPIではない)   – 可能な限りECMAScriptの仕様に基づいてASTノードを表現   40   ECMAScript  ASTのための公開API
  • 41. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   JEP  236:  Parser  API  for  Nashorn   •  JDK9  b55以後で試すことが できる   •  JavaDoc – hjps://bugs.openjdk.java.net/ browse/JDK-­‐8048176 41   jdk.nashorn.api.tree  
  • 42. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   まとめ 42  
  • 43. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   まとめ •  8u20、8u40でパフォーマンス向上の ための機能が追加されました   •  今後もNashornの開発は続⾏行行します   •  是⾮非フィードバックをお願いします   43  
  • 44. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Nashorn  Project •  Nashorn  Mailing  List   – nashorn-­‐dev@openjdk.java.net   •  Nashorn  Wiki   – hjps://wiki.openjdk.java.net/display/Nashorn/Main   •  DEVELOPER_README   – hjp://hg.openjdk.java.net/jdk8u/jdk8u-­‐dev/nashorn/file/Ip/docs/ DEVELOPER_README   •  Nashorn  -­‐  JavaScript  for  the  JVM   – hjp://blogs.oracle.com/nashorn/   44   hjp://openjdk.java.net/projects/nashorn/  
  • 45. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Safe  Harbor  Statement   The  preceding  is  intended  to  outline  our  general  product  direcIon.  It  is  intended  for   informaIon  purposes  only,  and  may  not  be  incorporated  into  any  contract.  It  is  not  a   commitment  to  deliver  any  material,  code,  or  funcIonality,  and  should  not  be  relied  upon   in  making  purchasing  decisions.  The  development,  release,  and  Iming  of  any  features  or   funcIonality  described  for  Oracle’s  products  remains  at  the  sole  discreIon  of  Oracle.   45  
  • 46. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |           46  
  • 47.
  • 48. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |