Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Nobuhiro Sue
1,640 views
Groovy indy 20120222
2012/2/22開催 JJUG Night Seminar資料
Technology
◦
Read more
6
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 16
2
/ 16
3
/ 16
4
/ 16
5
/ 16
6
/ 16
7
/ 16
8
/ 16
9
/ 16
10
/ 16
11
/ 16
12
/ 16
13
/ 16
14
/ 16
15
/ 16
16
/ 16
More Related Content
PDF
Read Groovy Compile process(Groovy Benkyoukai 2013)
by
Uehara Junji
PDF
Groovyの紹介20130323
by
Yasuharu Hayami
PDF
The History of Groovy #GroovyBase
by
kyon mm
PDF
Gws 20130315 gradle_handson
by
Nobuhiro Sue
PDF
Groovy base gradle_20130309
by
Nobuhiro Sue
PDF
Introduce Groovy 2.3 trait
by
Uehara Junji
PDF
New features of Groovy 2.0 and 2.1
by
Uehara Junji
PDF
enterprise grails challenge, 2013 Summer
by
Uehara Junji
Read Groovy Compile process(Groovy Benkyoukai 2013)
by
Uehara Junji
Groovyの紹介20130323
by
Yasuharu Hayami
The History of Groovy #GroovyBase
by
kyon mm
Gws 20130315 gradle_handson
by
Nobuhiro Sue
Groovy base gradle_20130309
by
Nobuhiro Sue
Introduce Groovy 2.3 trait
by
Uehara Junji
New features of Groovy 2.0 and 2.1
by
Uehara Junji
enterprise grails challenge, 2013 Summer
by
Uehara Junji
What's hot
PDF
「プログラミングGroovy」入門(公開用)
by
orange clover
PDF
Markup Template Engine introduced Groovy 2.3
by
Uehara Junji
PDF
マルチスレッド問題の特定と再現に頑張った話
by
LINE Corporation
PDF
JavaのテストGroovyでいいのではないかという話
by
disc99_
PDF
簡単!Groovy入門
by
Lee Choong Geun
PDF
Goji とレイヤ化アーキテクチャ
by
Shiroyagi Corporation
PDF
20120915 Pythonは本当にBlenderの役に立っているか?
by
Tetsuo Mitsuda
PDF
PHPerのためのpostgresqlチューニングmini
by
Takhisa Hirokawa
PDF
はじめてのGit #gitkyoto
by
Hisateru Tanaka
PDF
G* Workshop in Fukuoka - Introduction
by
Kazuchika Sekiya
PPTX
開発現場で使えるかもしれないGroovy
by
zgmf_mbfp03
PPTX
開発を彩る技術たち
by
Oda Shinsuke
PDF
Groovy joint
by
Shinya Mochida
PDF
Groovy Shell Scripting 2015
by
Uehara Junji
PDF
Groovy Bootcamp 2015 by JGGUG
by
Uehara Junji
PDF
GroovyServ concept, how to use and outline.
by
Uehara Junji
PDF
groovy 2.1.0 20130118
by
Uehara Junji
PDF
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
by
Uehara Junji
PDF
Jjug 20140430 gradle_basic
by
Takuma Watabiki
PDF
2015/05/09 第5回G-Study発表資料-デールカーネギーセミナーにいってみたよ(`・ω・´)b
by
Yuta Hayakawa
「プログラミングGroovy」入門(公開用)
by
orange clover
Markup Template Engine introduced Groovy 2.3
by
Uehara Junji
マルチスレッド問題の特定と再現に頑張った話
by
LINE Corporation
JavaのテストGroovyでいいのではないかという話
by
disc99_
簡単!Groovy入門
by
Lee Choong Geun
Goji とレイヤ化アーキテクチャ
by
Shiroyagi Corporation
20120915 Pythonは本当にBlenderの役に立っているか?
by
Tetsuo Mitsuda
PHPerのためのpostgresqlチューニングmini
by
Takhisa Hirokawa
はじめてのGit #gitkyoto
by
Hisateru Tanaka
G* Workshop in Fukuoka - Introduction
by
Kazuchika Sekiya
開発現場で使えるかもしれないGroovy
by
zgmf_mbfp03
開発を彩る技術たち
by
Oda Shinsuke
Groovy joint
by
Shinya Mochida
Groovy Shell Scripting 2015
by
Uehara Junji
Groovy Bootcamp 2015 by JGGUG
by
Uehara Junji
GroovyServ concept, how to use and outline.
by
Uehara Junji
groovy 2.1.0 20130118
by
Uehara Junji
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
by
Uehara Junji
Jjug 20140430 gradle_basic
by
Takuma Watabiki
2015/05/09 第5回G-Study発表資料-デールカーネギーセミナーにいってみたよ(`・ω・´)b
by
Yuta Hayakawa
Viewers also liked
PPTX
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
by
Nobuhiro Sue
PDF
Gws 20141024 gradle_intro
by
Nobuhiro Sue
PDF
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
PDF
Gws 20140418 camel_groovy
by
Nobuhiro Sue
PDF
Html5勉強会 20120423
by
Nobuhiro Sue
PPT
20111031 MobileWeb at TDC
by
Nobuhiro Sue
PDF
JSUG20171027-spfingboot-k8s-ocp
by
Nobuhiro Sue
PDF
Jjug 20140430 gradle_intro
by
Nobuhiro Sue
PDF
20140329_kyon_kao_wedding_LT_Groovy
by
Nobuhiro Sue
PDF
Light and shadow of microservices
by
Nobuhiro Sue
PDF
ぽんぽこバレー勉強会 20120427
by
Nobuhiro Sue
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
by
Nobuhiro Sue
Gws 20141024 gradle_intro
by
Nobuhiro Sue
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
Gws 20140418 camel_groovy
by
Nobuhiro Sue
Html5勉強会 20120423
by
Nobuhiro Sue
20111031 MobileWeb at TDC
by
Nobuhiro Sue
JSUG20171027-spfingboot-k8s-ocp
by
Nobuhiro Sue
Jjug 20140430 gradle_intro
by
Nobuhiro Sue
20140329_kyon_kao_wedding_LT_Groovy
by
Nobuhiro Sue
Light and shadow of microservices
by
Nobuhiro Sue
ぽんぽこバレー勉強会 20120427
by
Nobuhiro Sue
Similar to Groovy indy 20120222
PDF
Groovy kisobenkyoukai20130309
by
Uehara Junji
PDF
Groovyで楽にSQLを実行してみよう
by
Akira Shimosako
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
PPTX
jvmlang.daitokai 1.0.0 MinCamlJを作ってみた
by
Kazuyoshi Kamitsukasa
PDF
Javaセキュアコーディングセミナー東京第1回 講義
by
JPCERT Coordination Center
PDF
Java 7 invokedynamic の概要
by
Taku Miyakawa
PDF
Haxe
by
Kazuhiro Eguchi
KEY
G* Workshop in fukuoka 20120901
by
Uehara Junji
PPT
G*workshop sendai 20100424(v2)
by
Nobuhiro Sue
KEY
JJUG CCC 2012 Real World Groovy/Grails
by
Uehara Junji
PDF
New feature of Groovy2.0 G*Workshop
by
Uehara Junji
PDF
Kink: invokedynamic on a prototype-based language
by
Taku Miyakawa
KEY
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
by
Uehara Junji
PDF
Java x Groovy: improve your java development life
by
Uehara Junji
PDF
Clojure
by
Uehara Junji
PDF
JDK 10 へようこそ
by
David Buck
PDF
Scala conf2013
by
Takafumi Ikeda
KEY
Aizu lt tokyo_luxion
by
Tomoaki Tamura
PDF
RubyKaigi2014: Just in Time compiler for CRuby
by
imasahiro
PDF
JavaWorld Day 2009 Scala
by
Tomoharu ASAMI
Groovy kisobenkyoukai20130309
by
Uehara Junji
Groovyで楽にSQLを実行してみよう
by
Akira Shimosako
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
jvmlang.daitokai 1.0.0 MinCamlJを作ってみた
by
Kazuyoshi Kamitsukasa
Javaセキュアコーディングセミナー東京第1回 講義
by
JPCERT Coordination Center
Java 7 invokedynamic の概要
by
Taku Miyakawa
Haxe
by
Kazuhiro Eguchi
G* Workshop in fukuoka 20120901
by
Uehara Junji
G*workshop sendai 20100424(v2)
by
Nobuhiro Sue
JJUG CCC 2012 Real World Groovy/Grails
by
Uehara Junji
New feature of Groovy2.0 G*Workshop
by
Uehara Junji
Kink: invokedynamic on a prototype-based language
by
Taku Miyakawa
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
by
Uehara Junji
Java x Groovy: improve your java development life
by
Uehara Junji
Clojure
by
Uehara Junji
JDK 10 へようこそ
by
David Buck
Scala conf2013
by
Takafumi Ikeda
Aizu lt tokyo_luxion
by
Tomoaki Tamura
RubyKaigi2014: Just in Time compiler for CRuby
by
imasahiro
JavaWorld Day 2009 Scala
by
Tomoharu ASAMI
More from Nobuhiro Sue
PDF
Knative CloudEvents
by
Nobuhiro Sue
PPTX
TDC20111031_Groovy_Geb
by
Nobuhiro Sue
PDF
Gws 20120521 gradle
by
Nobuhiro Sue
PPTX
DevSummit2011JGGUG OpenJam: Groovy
by
Nobuhiro Sue
PPTX
Letsgo sendai nobusue_20110528
by
Nobuhiro Sue
PPTX
DevLOVE 20100823 EnterpriseOSGi
by
Nobuhiro Sue
PDF
Gws 20131018 vertx_handson(updated)
by
Nobuhiro Sue
PPTX
G*workshop 20101209 OSGi and Grails2.0
by
Nobuhiro Sue
PDF
Letsgo developer 2012 Continuous Delivery
by
Nobuhiro Sue
PPTX
Gws sokai 20100724_nsue
by
Nobuhiro Sue
PDF
Gws 20140117 lt
by
Nobuhiro Sue
PDF
Fuse Online Hands-on Guide
by
Nobuhiro Sue
PDF
Fuse Online Hands-on Guide
by
Nobuhiro Sue
PDF
クラウド研究会 20120712 BaaS
by
Nobuhiro Sue
PDF
DevLove k8s nobusue 20180711
by
Nobuhiro Sue
PDF
JTF2018_B30_k8s_operator_nobusue
by
Nobuhiro Sue
Knative CloudEvents
by
Nobuhiro Sue
TDC20111031_Groovy_Geb
by
Nobuhiro Sue
Gws 20120521 gradle
by
Nobuhiro Sue
DevSummit2011JGGUG OpenJam: Groovy
by
Nobuhiro Sue
Letsgo sendai nobusue_20110528
by
Nobuhiro Sue
DevLOVE 20100823 EnterpriseOSGi
by
Nobuhiro Sue
Gws 20131018 vertx_handson(updated)
by
Nobuhiro Sue
G*workshop 20101209 OSGi and Grails2.0
by
Nobuhiro Sue
Letsgo developer 2012 Continuous Delivery
by
Nobuhiro Sue
Gws sokai 20100724_nsue
by
Nobuhiro Sue
Gws 20140117 lt
by
Nobuhiro Sue
Fuse Online Hands-on Guide
by
Nobuhiro Sue
Fuse Online Hands-on Guide
by
Nobuhiro Sue
クラウド研究会 20120712 BaaS
by
Nobuhiro Sue
DevLove k8s nobusue 20180711
by
Nobuhiro Sue
JTF2018_B30_k8s_operator_nobusue
by
Nobuhiro Sue
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
Download