Java Developer Workshop #2で喋ります

39 views
Skip to first unread message

Hiroshi Nakamura

unread,
Oct 27, 2011, 1:05:25 AM10/27/11
to jruby-u...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

ごぶさたしております、なひです。

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-----

Hiroshi Nakamura

unread,
Oct 27, 2011, 1:17:18 AM10/27/11
to jruby-u...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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-----

Muga Nishizawa

unread,
Oct 27, 2011, 11:21:41 AM10/27/11
to jruby-u...@googlegroups.com
中村さん

こんばんは、西澤無我です。

Java Developer Workshop #2 での発表がんばってください!

それと "JRuby on Java SE7" の資料拝見させていただきました。
とても面白かったです。特に、従来の invokevirtual の呼び出しと
invokedynamic 呼び出しのバイトコードの比較のスライドです。

そこのスライド内で、教えてほしいことがあります。
INVOKEDYNAMIC call ( ... ) [ ... ] とそのスライドに書かれているの
ですが、その大括弧 [ ... ] は何を表しているのですか?その中には、
invocationBootstrap などと書かれているのですが…。あわせて、
JSR 292 を斜め読みしたのですが、なかなかピンとこないのです。

お手すきの際に、教えていただけると幸いです。
どうぞ宜しくお願いします。

西澤無我


2011/10/27 Hiroshi Nakamura <naka...@gmail.com>:

Hiroshi Nakamura

unread,
Oct 27, 2011, 10:05:58 PM10/27/11
to jruby-u...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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-----

Muga Nishizawa

unread,
Oct 28, 2011, 1:56:04 AM10/28/11
to jruby-u...@googlegroups.com
中村さん

ご返信ありがとうございます。

> ありがとうございます。ちなみにRakuten Technology Conference 2011にも行
> きます。去年とは違ってただの参加者ですけどね。

ありがとうございます!お会いできればうれしいです。

> []にあるのはbootstrapです。invokedynamic命令は、コンパイル時には特定の
> メソッドとリンクされていないので、初回実行時になんらかのメソッドとリン
> クする必要があります。そのMethodHandleを検索するためのメソッドを、
> bootstrapとして(こちらは静的に)コンパイル時に登録します。

静的に(JRuby 側で)登録しておくのですね?なるほど、どのメソッドが
探索対象になるのか、またいつ対象になるのかがわかり、かなりクリアになりました。
ありがとうございます。とても興味が深い話です、また是非教えてください。

西澤無我

2011/10/28 Hiroshi Nakamura <naka...@gmail.com>:

Hiroshi Nakamura

unread,
Nov 20, 2011, 8:27:47 PM11/20/11
to jruby-u...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

再び宣伝に出てきました、なひです。

(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-----

Hiroshi Nakamura

unread,
Dec 13, 2011, 3:52:52 AM12/13/11
to jruby-u...@googlegroups.com
(2011/11/21 10:27), 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

先ほど、当日のビデオが公開されました。
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
の最後のほうです。気の長い話です。

以上です。

signature.asc
Reply all
Reply to author
Forward
0 new messages