Suche senden
Hochladen
Groovy indy 20120222
•
6 gefällt mir
•
1,627 views
Nobuhiro Sue
Folgen
2012/2/22開催 JJUG Night Seminar資料
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 16
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
The History of Groovy #GroovyBase
The History of Groovy #GroovyBase
kyon mm
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
enterprise grails challenge, 2013 Summer
enterprise grails challenge, 2013 Summer
Uehara Junji
Groovy base gradle_20130309
Groovy base gradle_20130309
Nobuhiro Sue
Groovyの紹介20130323
Groovyの紹介20130323
Yasuharu Hayami
Gws 20130315 gradle_handson
Gws 20130315 gradle_handson
Nobuhiro Sue
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1
Uehara Junji
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Uehara Junji
Empfohlen
The History of Groovy #GroovyBase
The History of Groovy #GroovyBase
kyon mm
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
enterprise grails challenge, 2013 Summer
enterprise grails challenge, 2013 Summer
Uehara Junji
Groovy base gradle_20130309
Groovy base gradle_20130309
Nobuhiro Sue
Groovyの紹介20130323
Groovyの紹介20130323
Yasuharu Hayami
Gws 20130315 gradle_handson
Gws 20130315 gradle_handson
Nobuhiro Sue
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1
Uehara Junji
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Uehara Junji
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
Uehara Junji
GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.
Uehara Junji
Groovy joint
Groovy joint
Shinya Mochida
groovy 2.1.0 20130118
groovy 2.1.0 20130118
Uehara Junji
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
Uehara Junji
開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy
zgmf_mbfp03
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
disc99_
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - Introduction
Kazuchika Sekiya
簡単!Groovy入門
簡単!Groovy入門
Lee Choong Geun
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
orange clover
はじめてのGit #gitkyoto
はじめてのGit #gitkyoto
Hisateru Tanaka
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Takuma Watabiki
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
Tetsuo Mitsuda
開発を彩る技術たち
開発を彩る技術たち
Oda Shinsuke
2015/05/09 第5回G-Study発表資料-デールカーネギーセミナーにいってみたよ(`・ω・´)b
2015/05/09 第5回G-Study発表資料-デールカーネギーセミナーにいってみたよ(`・ω・´)b
Yuta Hayakawa
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話
LINE Corporation
PHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングmini
Takhisa Hirokawa
Html5勉強会 20120423
Html5勉強会 20120423
Nobuhiro Sue
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
Weitere ähnliche Inhalte
Was ist angesagt?
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
Uehara Junji
GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.
Uehara Junji
Groovy joint
Groovy joint
Shinya Mochida
groovy 2.1.0 20130118
groovy 2.1.0 20130118
Uehara Junji
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
Uehara Junji
開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy
zgmf_mbfp03
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
disc99_
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - Introduction
Kazuchika Sekiya
簡単!Groovy入門
簡単!Groovy入門
Lee Choong Geun
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
orange clover
はじめてのGit #gitkyoto
はじめてのGit #gitkyoto
Hisateru Tanaka
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Takuma Watabiki
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
Tetsuo Mitsuda
開発を彩る技術たち
開発を彩る技術たち
Oda Shinsuke
2015/05/09 第5回G-Study発表資料-デールカーネギーセミナーにいってみたよ(`・ω・´)b
2015/05/09 第5回G-Study発表資料-デールカーネギーセミナーにいってみたよ(`・ω・´)b
Yuta Hayakawa
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話
LINE Corporation
PHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングmini
Takhisa Hirokawa
Was ist angesagt?
(20)
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.
Groovy joint
Groovy joint
groovy 2.1.0 20130118
groovy 2.1.0 20130118
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - Introduction
簡単!Groovy入門
簡単!Groovy入門
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
はじめてのGit #gitkyoto
はじめてのGit #gitkyoto
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
開発を彩る技術たち
開発を彩る技術たち
2015/05/09 第5回G-Study発表資料-デールカーネギーセミナーにいってみたよ(`・ω・´)b
2015/05/09 第5回G-Study発表資料-デールカーネギーセミナーにいってみたよ(`・ω・´)b
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話
PHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングmini
Andere mochten auch
Html5勉強会 20120423
Html5勉強会 20120423
Nobuhiro Sue
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
Gws 20140418 camel_groovy
Gws 20140418 camel_groovy
Nobuhiro Sue
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
Nobuhiro Sue
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427
Nobuhiro Sue
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
Nobuhiro Sue
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy
Nobuhiro Sue
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
Nobuhiro Sue
Jjug 20140430 gradle_intro
Jjug 20140430 gradle_intro
Nobuhiro Sue
Light and shadow of microservices
Light and shadow of microservices
Nobuhiro Sue
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
Nobuhiro Sue
Andere mochten auch
(11)
Html5勉強会 20120423
Html5勉強会 20120423
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Gws 20140418 camel_groovy
Gws 20140418 camel_groovy
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
Jjug 20140430 gradle_intro
Jjug 20140430 gradle_intro
Light and shadow of microservices
Light and shadow of microservices
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
Ähnlich wie Groovy indy 20120222
Groovy kisobenkyoukai20130309
Groovy kisobenkyoukai20130309
Uehara Junji
いまさら触るAwt
いまさら触るAwt
Keiichi Kobayashi
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
TDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Nobuhiro Sue
JavaとScalaとGroovyと
JavaとScalaとGroovyと
irof N
明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
ゆるふわアーキを支える技術
ゆるふわアーキを支える技術
Shinichi Kozake
Go一緒にいかが?
Go一緒にいかが?
Ryuji Iwata
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Hiroko Tamagawa
Hudson using Groovy #jggug
Hudson using Groovy #jggug
kimukou_26 Kimukou
G* Workshop in fukuoka 20120901
G* Workshop in fukuoka 20120901
Uehara Junji
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
こんにちはGroovy
こんにちはGroovy
irof N
Gws 20120521 gradle
Gws 20120521 gradle
Nobuhiro Sue
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
AdvancedTechNight
Vue.js with Go
Vue.js with Go
Kazuhiro Kubota
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
Koichi Sakata
Bp study39 nodejs
Bp study39 nodejs
Yohei Sasaki
Go+revel
Go+revel
Amuro Nishizawa
What makes Geb groovy?
What makes Geb groovy?
Youtarou TAKAHASHI
Ähnlich wie Groovy indy 20120222
(20)
Groovy kisobenkyoukai20130309
Groovy kisobenkyoukai20130309
いまさら触るAwt
いまさら触るAwt
Jenkins と groovy
Jenkins と groovy
TDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
JavaとScalaとGroovyと
JavaとScalaとGroovyと
明日から使えるgradle
明日から使えるgradle
ゆるふわアーキを支える技術
ゆるふわアーキを支える技術
Go一緒にいかが?
Go一緒にいかが?
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Hudson using Groovy #jggug
Hudson using Groovy #jggug
G* Workshop in fukuoka 20120901
G* Workshop in fukuoka 20120901
Gws in fukuoka
Gws in fukuoka
こんにちはGroovy
こんにちはGroovy
Gws 20120521 gradle
Gws 20120521 gradle
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
Vue.js with Go
Vue.js with Go
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
Bp study39 nodejs
Bp study39 nodejs
Go+revel
Go+revel
What makes Geb groovy?
What makes Geb groovy?
Mehr von Nobuhiro Sue
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Nobuhiro Sue
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Nobuhiro Sue
Knative CloudEvents
Knative CloudEvents
Nobuhiro Sue
JTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusue
Nobuhiro Sue
DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711
Nobuhiro Sue
Gws 20140117 lt
Gws 20140117 lt
Nobuhiro Sue
Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)
Nobuhiro Sue
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaS
Nobuhiro Sue
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
Nobuhiro Sue
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Nobuhiro Sue
DevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: Groovy
Nobuhiro Sue
G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0
Nobuhiro Sue
DevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGi
Nobuhiro Sue
Gws sokai 20100724_nsue
Gws sokai 20100724_nsue
Nobuhiro Sue
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)
Nobuhiro Sue
Mehr von Nobuhiro Sue
(15)
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Knative CloudEvents
Knative CloudEvents
JTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusue
DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711
Gws 20140117 lt
Gws 20140117 lt
Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaS
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
DevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: Groovy
G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0
DevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGi
Gws sokai 20100724_nsue
Gws sokai 20100724_nsue
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)
Kürzlich hochgeladen
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
Kürzlich hochgeladen
(9)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
Groovy indy 20120222
1.
Groovyとindy
2012/2/22 @JJUG Night Seminar JJUG幹事/ JGGUGサポートスタッフ 須江 信洋 http://twitter.com/nobusue http://d.hatena.ne.jp/nobusue ※資料の内容は個人としての意見・見解を述べたものであり、 所属する企業・組織が内容を保証するものではありません。
2.
自己紹介
須江 信洋(すえ のぶひろ) Twitter: @nobusue http://www.facebook.com/profile.php?id=732337788 かれこれ10年ほどJavaEE関連の仕事をしてます G*(Groovy関連技術)との関わり Groovyコミュニティ(JGGUG)サポートスタッフ 「プログラミングGROOVY」執筆チーム 「Groovy イン・アクション」翻訳チーム 言語実装経験ありません・・・ 2
3.
本日のお題 Groovyのメソッド呼出しの仕組み(概要) GroovyのInvokeDynamic対応(indy
branch) Groovyの静的型対応 3
4.
Groovyとは
Javaと親和性の高いJVM言語 Javaと(ほぼ)上位互換の文法 +リスト/マップリテラル、クロージャ、etc Javaで冗長になりがちな処理を簡潔に書ける Javaのクラス⇔Groovyのクラス スクリプト言語 コンパイル不要、ソースのまま実行可能 内部的にクラスファイルを自動生成(インタープリターではない) groovycコマンドで明示的なクラスファイル生成も可能 動的言語 MOP(Meta Object Protocol)、ExpandoMetaClass BuilderやDynamic Finderなどの実装が容易 4
5.
MetaClassによる動的メソッド [For Groovy class] class
Hoge { } Hoge.metaClass.hello = { name -> return "Hello ${name}!" } assert new Hoge().hello('indy') == 'Hello indy!' [For Java class] java.lang.String.metaClass.hello = { name -> return "Hello ${name}!" } assert "abc".hello('indy') == 'Hello indy!' 5
6.
Groovyのメソッド呼出し概略(1.8.x)
Java オブジェクト Groovy のタイプ Yes 動的メソッ No Yes メソッドが No ド? 存在? Yes インターセプ No invoke クロージャ Groovy拡張 Method() ト可能? 実行 メソッド? No invoke Yes No 動的メソッ Yes Method() ド? GDKメソッド Javaメソッド クロージャ 実行 実行 メソッド実行 実行 6
7.
メソッド呼出し効率の改善 Call
Siteキャッシュ 動的メソッド呼出しに伴うメソッド探索結果を キャッシュして再利用 Groovy 1.6から導入 かなりの高速化を達成 7
8.
MOP2: 新世代MOP GroovyのMOPを再設計する取り組み
MOPの実装が複雑になりすぎたことへの反省 Java7のInvokeDynamicに対応 できれば最適化はJVMに任せたい Groovy2.0(現在beta)に一部取り込まれる予 定 InvokeDynamic対応はindyブランチで開発中 https://github.com/groovy/groovy-core/tree/indy 8
9.
indyブランチの現状(2012/2/22)
InvokeDynamicに対応したバイトコードを生成 するための処理の実装中 org.codehaus.groovy.vmplugin.v7.IndyInterface org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter org.codehaus.groovy.classgen.asm.WriterController これらを有効化するには、 CompilerConfigurationでオプション"indy" を指定する必要あり チューニングなどの最適化や、メインブランチ へのマージはこれからの課題 9
10.
まだ道半ばですね・・・ 10
11.
参考: Blackdrag's View
indy対応のメインコントリビューターの覚書 http://blackdragsview.blogspot.com/2012/01 /invokedynamic-api.html APIリファレンスだけでは分かりづらい箇所や 使い方のコツなど、Groovyへの実装によって 得られた知見がまとめられている 11
12.
Groovyの静的型対応
GEP8:Static Type Checking http://docs.codehaus.org/display/GroovyJSR /GEP+8+-+Static+type+checking Groovyに型安全をもたらすための取り組み GEP10: Static compilation http://docs.codehaus.org/display/GroovyJSR /GEP+10+-+Static+compilation Groovyのパフォーマンス向上のための取り組み 12
13.
GEP8: Static type
checking @TypeChecked void method(String message) { if (rareCondition) { println "Did you spot the error in this ${message.toUppercase()}?" } } クラスやメソッドを @TypeChecked で修飾 目的は問題の早期発見(IDE向け?) grumpyブランチで開発中 https://github.com/groovy/groovy-core/tree/grumpy 詳細は @uehaj さんのblogで http://d.hatena.ne.jp/uehaj/20111114/1321236715 13
14.
GEP10: Static compilation @groovy.transform.CompileStatic int
fib(int i) { i < 2 ? 1 : fib(i - 2) + fib(i - 1) } 現時点では提案&実験的実装 メソッドを @CompileStatic で修飾 新しい文法 obj->method() でstatic dispatch 目的はパフォーマンス向上(Javaと同等を目指す) experimental-static-compilerブランチで開発中 https://github.com/groovy/groovy- core/tree/experimental-static-compiler 詳細は @uehaj さんのblogで・・・ http://d.hatena.ne.jp/uehaj/20111124/1322117039 14
15.
まとめ
Groovy 2.0 Groovy as Dynamic Java indy Groovy 1.6 1.8 1.5 grumpy Call Siteキャッシュ experimental- (Dynamic&Static) static- Groovy compiler as Better Java 15
16.
ご静聴ありがとうございました 16
Jetzt herunterladen