ごぶさたしております、なひです。
12/1(木)に、日本オラクル様セミナールーム(JRubyKaigi2011が開催されたの
と同じ場所)で、Java技術に燗するセミナーが開催されます。今回、JRubyに
関してお話させていただく時間をいただきましたので、ご紹介です。
Java Developer Workshop #2
http://www.oracle.com/goto/jpm111201 (参加申し込みもこちら)
私のセッションは、Scala、Groovyと並んでJVM言語の1つとして、40分ほどい
ただいています。
タイトル: 現実世界のJRuby
概要: JRubyはJavaによるRuby言語実装で、Railsとの100%の互換性と、オリジ
ナルのRubyより高いスケーラビリティを備えています。既存Java資産を
活かしつつJavaより機敏な開発を可能にする、Java VM言語の一つとし
て注目されており、Java中心の企業システム開発に新世代言語を利用す
る道を提供します。Java SE 7の動的言語サポートにより高速化され、
開発開始から10年を越えて進化の続くJRubyについて、機能と活用方法
を紹介します。
※「現実世界のJRuby」は、JavaOne2011のTomとCharlesのセミナー、
「Real-World JRuby」から取りました。
今回は、Javaの開発者の皆様向けなので、実装(IRなど)の話はありません。
が、流れ上、InvokeDynamicの説明は要るでしょうね。その他は実例中心の話
にするつもりです。平日昼間ではありますが、ご都合がつけばご参加ください。
以下、ウェブサイトから、セミナー概要の転載です。詳しくは上記URLでご確
認ください。
Java Developer Workshop #2
http://www.oracle.com/goto/jpm111201 (参加申し込みもこちら)
主催: 日本オラクル株式会社
参加費: 無料
対象: Java開発者(組み込みからエンタープライズまで)
定員: 200名
お問い合わせ: 日本オラクル株式会社 セミナー事務局
E-mail: oracle-s...@oracle.com
お申し込み方法:
申し込みには、オラクル・コーポレーションのプロファイルのご登録が必要と
なります。 プロファイル登録に関する詳細は こちらをご参照ください。
※お申込みまたはご参加いただいたお客様に対して、本セミナーに関するご連
絡メールやお礼メールを配信させていただくことがあります(ダウンロード資
料のご案内、アンケートのご依頼が含まれる場合があります)。予めご了承く
ださい。
以上です。
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQEcBAEBAgAGBQJOqOaSAAoJEC7N6P3yLbI2bdwH/iKqr8mTQVRRm3iN7ws/SozR
+ARoC4ZjIDwqsgeNvECdxLinGATyVI3oKqlUBvqrT+e8spHkX9noCNQEfzFgTvzX
UoiwFEq8c8IPRV703vQLj1vyPA6bNkPLfXIOeAuuqliuxyJHJaGjVG4sBepALPXU
cpUTCj4GA6PoS7JO3XhHexegFNJ+RkgCC2SxyKy9FHerYpKL9h6jEOg28wL5WfN+
DuAGXK1tmzw6+dc+19PAj0rPYMlU0ZPdmX8PE18555diDFJ5BtouWFO8HdvRljk5
NQp63K9Pow18YSUPPDM1J9NnxYzrbfp+6geoixofgIjYSwhDM3XK+5FlkgP5v9E=
=cThX
-----END PGP SIGNATURE-----
On 10/27/2011 02:05 PM, Hiroshi Nakamura wrote:
> 今回は、Javaの開発者の皆様向けなので、実装(IRなど)の話はありません。 が、流れ上、InvokeDynamicの説明は要るでしょ
> うね。その他は実例中心の話 にするつもりです。平日昼間ではありますが、ご都合がつけばご参加ください。
そういえば、7月に同じく日本オラクル様セミナールームで行われた
「Java SE 7 リリース記念特別イベント懇親会 LT」
で、InvokeDynamicとJRubyについて話したのでした。
http://bit.ly/invokedynamic (例によってPreziです。Flashすいません)
正直なところ、Java 7 GAだとまだそれほど性能出ないんですが、いずれ出る
7u2(Developer Preview版は[1]からダウンロードできます)では、ちゃんと
効果が感じられる結果が出ています。JRuby 1.7開発版は[2]からダウンロード
できますが、結構不安定なので、手元で試すだけにしておいてくださいね。
[1] http://jdk7.java.net/download.html
[2] http://ci.jruby.org/snapshots/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQEcBAEBAgAGBQJOqOldAAoJEC7N6P3yLbI2Y+0IAIuv5X8ewoDWOTgbyO464eFN
WmE8qOrwFCREyOmygBMqRmx2QN3HdCsdKEPtmUm2hm6bKWCO4NN7eOm5dReXwRUR
YfEYcKk46g8ZG9yMcm/4iQF8lGclJX04b91M+xDf/4QwCD3B8CTIEzfVz9oz8870
LKi9gWgCjC0wv0wEHHvpOmNeR0OOllkldpsrk/r78TxmXrnFUgPh+YsmwiLzUxFs
AtvA50ICb/5Va5qJjuaQWkGXOnXZK/I6CtAmx+KcOBLEyj1hffR3rSgcRRsYIK24
lN2FQBbxCMOgvppMa5kt0Fq3oTIS5xa/vDCMNRnuqhu1j6oFvF+FixhUIjJboWI=
=07S9
-----END PGP SIGNATURE-----
こんばんは、西澤無我です。
Java Developer Workshop #2 での発表がんばってください!
それと "JRuby on Java SE7" の資料拝見させていただきました。
とても面白かったです。特に、従来の invokevirtual の呼び出しと
invokedynamic 呼び出しのバイトコードの比較のスライドです。
そこのスライド内で、教えてほしいことがあります。
INVOKEDYNAMIC call ( ... ) [ ... ] とそのスライドに書かれているの
ですが、その大括弧 [ ... ] は何を表しているのですか?その中には、
invocationBootstrap などと書かれているのですが…。あわせて、
JSR 292 を斜め読みしたのですが、なかなかピンとこないのです。
お手すきの際に、教えていただけると幸いです。
どうぞ宜しくお願いします。
西澤無我
2011/10/27 Hiroshi Nakamura <naka...@gmail.com>:
On 10/28/2011 12:21 AM, Muga Nishizawa wrote:
> Java Developer Workshop #2 での発表がんばってください!
ありがとうございます。ちなみにRakuten Technology Conference 2011にも行
きます。去年とは違ってただの参加者ですけどね。
> それと "JRuby on Java SE7" の資料拝見させていただきました。 とても面白かったです。特に、従来の
> invokevirtual の呼び出しと invokedynamic 呼び出しのバイトコードの比較のスライドです。
>
> そこのスライド内で、教えてほしいことがあります。 INVOKEDYNAMIC call ( ... ) [ ... ] とそのスライド
> に書かれているの ですが、その大括弧 [ ... ] は何を表しているのですか?その中には、 invocationBootstrap
> などと書かれているのですが…。あわせて、 JSR 292 を斜め読みしたのですが、なかなかピンとこないのです。
[]にあるのはbootstrapです。invokedynamic命令は、コンパイル時には特定の
メソッドとリンクされていないので、初回実行時になんらかのメソッドとリン
クする必要があります。そのMethodHandleを検索するためのメソッドを、
bootstrapとして(こちらは静的に)コンパイル時に登録します。
動作としては、初回実行時にbootstrapに登録したメソッドが実行され、そこ
で返したMethodHandleが実行されます。そのMethodHandleの検索は、
bootstrapメソッドで動的に行えるので、dynamic language向けにdynamicに
linkできる、というわけです。
それだけでしょうか?InvokeDynamicの本質的にはそれだけです。動的にリン
クするという意味ではreflectionに似ていますが、Javaから使うのは面倒かつ
遅いだけなので、やめておいたほうがよいです。そう言われても「いや、こう
いう用途なら便利なはずだ」と反論できる人だけ使いましょう。
Dynamic language supportが面白くなってくるのはこの先で、MethodHandleの
組み上げ方次第でいろいろできるんですが、私もまだ勉強中なので、そのうち
また。JRubyでは、Rubyのメソッド呼び出しのみでなく、定数参照、リテラル
参照に使っています。
以上です。
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQEcBAEBAgAGBQJOqg4CAAoJEC7N6P3yLbI2kXAH/3FK5kvdgUxZHlyTCZcmqYsz
RwPLSTKgNj2+0SKpXje/hxjTwEboZIWiyllScvkvcQJx9zExLVfKewmyghQj5XWW
uVH7YyJwJvnUMg0VmYzy5QaN/47GKWwNRsS5gA085880A0uark5yROlNb+FJ3Po8
nKKlpDBRwaruVQqDeG/SpqZZYRXjqC2E99FmOuhyOWICCdrJQwu8jWRJ36XzcFb6
R+97374UuPkqaZI4YKDkfn5w+WUp2f0hy0lps7uoVcI9XPNXY1UHxDbFKgvymflJ
px35Cjd3wLnF1TDmwg7DFc/LsA89j5nC5bBaiA7jBsxToQzh2Mg7QiBgIPXm5G8=
=E0Ah
-----END PGP SIGNATURE-----
ご返信ありがとうございます。
> ありがとうございます。ちなみにRakuten Technology Conference 2011にも行
> きます。去年とは違ってただの参加者ですけどね。
ありがとうございます!お会いできればうれしいです。
> []にあるのはbootstrapです。invokedynamic命令は、コンパイル時には特定の
> メソッドとリンクされていないので、初回実行時になんらかのメソッドとリン
> クする必要があります。そのMethodHandleを検索するためのメソッドを、
> bootstrapとして(こちらは静的に)コンパイル時に登録します。
静的に(JRuby 側で)登録しておくのですね?なるほど、どのメソッドが
探索対象になるのか、またいつ対象になるのかがわかり、かなりクリアになりました。
ありがとうございます。とても興味が深い話です、また是非教えてください。
西澤無我
2011/10/28 Hiroshi Nakamura <naka...@gmail.com>:
再び宣伝に出てきました、なひです。
(2011/10/27 14:05), Hiroshi Nakamura wrote:
> 12/1(木)に、日本オラクル様セミナールーム(JRubyKaigi2011が開催されたの と同じ場所)で、Java技術に燗するセミ
> ナーが開催されます。今回、JRubyに 関してお話させていただく時間をいただきましたので、ご紹介です。
>
> Java Developer Workshop #2 http://www.oracle.com/goto/jpm111201 (参加
> 申し込みもこちら)
内容紹介のブログが増えたので、ご紹介です。
http://blogs.oracle.com/javajp/entry/java_developer_workshop_2_%E9%96%8B%E5%82%AC
「日本オラクルのエンベデッドJavaチーム」というのがあるんですね。あまり
embeddedでもないような気もしますが、そういうものなんでしょうか。
当日の私のセッションでは、JRubyFXの紹介を入れようと思ってます。JRubyか
らJavaFX 2.0を使うためのライブラリです: https://github.com/nahi/jrubyfx
どうしてもJavaでないと書けないbootstrapの1クラスだけJavaで書いてありま
すが、あとは特にライブラリ等はなく、サンプルがあるだけのプロジェクトで
す。あまり気合が入っていないプロジェクトですが、逆に言えば、JRubyは
Javaを操る機能が充実しているので、GroovyFXやScalaFXみたいな周辺ライブ
ラリがなくてもこのくらいできるよ、ということでもあります。
もちろん、周辺ライブラリがあればもう少しスマートに書ける部分は多くある
んですが、あまり凝ったことをして多層化するとメンテも大変だし、これはこ
れでありだと思いってます。社内向けツールとか、簡単なGUIならRubyですぐ
に書けますので、気が向いたら試してみてください。
(本文は以上です)
> 私のセッションは、Scala、Groovyと並んでJVM言語の1つとして、40分ほどい ただいています。
>
> タイトル: 現実世界のJRuby 概要: JRubyはJavaによるRuby言語実装で、Railsとの100%の互換性と、オリジ ナル
> のRubyより高いスケーラビリティを備えています。既存Java資産を 活かしつつJavaより機敏な開発を可能にする、Java VM言
> 語 の一つとし て注目されており、Java中心の企業システム開発に新世代言語を利用す る道を提供します。Java SE 7の動的言語サ
> ポー トにより高速化され、 開発開始から10年を越えて進化の続くJRubyについて、機能と活用方法 を紹介します。
>
> ※「現実世界のJRuby」は、JavaOne2011のTomとCharlesのセミナー、 「Real-World JRuby」から取り
> ました。
>
> 今回は、Javaの開発者の皆様向けなので、実装(IRなど)の話はありません。 が、流れ上、InvokeDynamicの説明は要るでしょ
> うね。その他は実例中心の話 にするつもりです。平日昼間ではありますが、ご都合がつけばご参加ください。
>
> 以下、ウェブサイトから、セミナー概要の転載です。詳しくは上記URLでご確 認ください。
>
> Java Developer Workshop #2 http://www.oracle.com/goto/jpm111201 (参加
> 申し込みもこちら)
>
> 主催: 日本オラクル株式会社 参加費: 無料 対象: Java開発者(組み込みからエンタープライズまで) 定員: 200名
> お問い合わせ: 日本オラクル株式会社 セミナー事務局 E-mail: oracle-s...@oracle.com
>
> お申し込み方法: 申し込みには、オラクル・コーポレーションのプロファイルのご登録が必要と なります。 プロファイル登録に関する詳細は
> こちらをご参照ください。 ※お申込みまたはご参加いただいたお客様に対して、本セミナーに関するご連 絡メールやお礼メールを配信させていた
> だくことがあります(ダウンロード資 料のご案内、アンケートのご依頼が含まれる場合があります)。予めご了承く ださい。
>
> 以上です。
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
iQEcBAEBAgAGBQJOyakTAAoJEC7N6P3yLbI2UN8IANxhSBdKLkpTXy17ZuRPa/S+
y1P+JkasVQ3Y51vGFglIvNeEnfs5XyuQWR6wpivW3yvH5/SA3f1btvPM/t8RBlB8
wvcpWMsyU8fzlkEf68N87V2CJgPdoC2gywQz+fFDpnF5O/vdlnHT3WUyEStI7fmQ
1cJ1aNnjxz4WRs+Br7Yz/0jjMqcWgz8hFIPN4LjMuBCM/nja2AvtAiwCGy0AusSo
iSspFsNyuLqMd36eeePvtC3I/cqeuTbZe4OtpElQUzqrbQKaCAbbR/GCE0rtHPke
L73GfcOmo4C1EOqzI7PF53+PsAO9JwnujpXpSBAFBOC+HCzYuhYMntvKJjRI66Q=
=OqiT
-----END PGP SIGNATURE-----
先ほど、当日のビデオが公開されました。
http://www.ustream.tv/channel/oracle-java-developer-workshop/videos
#2-5の http://www.ustream.tv/recorded/18854575 が、私のJRubyネタです。
資料はこちら: http://www.slideshare.net/HiroshiNakamura/jruby-10409367
JRuby以外のビデオですが、Java FX 2.0に興味のある方には:
http://www.ustream.tv/recorded/19098519
の01:00:00辺りにある、Kinect + Dukeのデモが必見です。JavaOneのものと同じ
ですが、日本で見られてよかった。
JDK 8~JDK 12の話はこちら:
http://www.ustream.tv/recorded/18853012
の最後のほうです。気の長い話です。
以上です。