SlideShare a Scribd company logo
The History
    of
  Groovy
Groovy基礎勉強会 #GroovyBase
自己紹介

• kyon_mm きょん

• 自称Groovyエヴァンジェリスト

• 2011.9 - なごやのテストエンジニア

• Groovy, Test, CD, Agile, etc...
Phantom Type


• 名古屋のソフトウェア開発企業です。

• http://www.phantomtype.com
スポンサー広告


• 今回の勉強会開催にあたって @kyon_mmを支
援してくださっている企業さんの広告になり
ます。
Phantom Type


• ファントムタイプ社の目指すところは「コミ
ュニティ活動のバイタリティを支援する」こ
とです。
Phantom Type

• コミュニティ活動とは例えば「⃝⃝ Boot
Campを主催する」だとか「××言語スタート
アップを主催する」とかそういうのです。特
に技術的な面にこだわっているわけではあり
ません。
Phantom Type


• ファントムタイプ社がやりたいのはコミュニ
ティを主催したい人たちの交通費、宿泊費、
開催場所とか諸々の支援です。
ここから本編
Agenda


• Groovy年表

• Groovy全体像
Groovy

• 2003 Birth
• 2004 GroovyOne
• 2007 Groovy 1.0 Release!
• 2009 Groovy 1.5 Release!
• 2012 Groovy 2.0 Release!
Background


• JamesがPythonに触発されてJavaに持ち込もう
 とする

• Inspired by Ruby, Smalltalk, Clojure, etc.
Ruby


• Collection
    • each, every, grep, collect, inject
• mixin( != trait )
Clojure


• trampoline
• Agent(GPars)
JSR-241



• Groovy言語はJavaの第二言語として認められ
る。(第一言語はJava言語
Impact


• Groovy1.5
• Groovy2.0
Groovy1.5


• Java 5
• SwingBuilder
• Java/Groovy mix Compile
Groovy2.0


• Embedded Static Type Check
• JDK7 Support
Groovy in Japan

• Grails 0.3 ∼ 1.0 近辺 => Javaでのアジャイル開
 発支援として知名度があがる

• Groovy 2.0 近辺 => NTTソフトウェアの外向
 けのGroovy活動が活発になる
Agenda


• Groovy年表

• Groovy全体像
Groovy

• Dynamic Type( != Dynamic Language)
• OO Programming
• Java Friendly
• Script
• A Lots of Shortcut (compared to Java Language)
Dynamic Type

• int a = 1 // int
• Foo a = new Foo() // Foo
• def a = 1 // Object
• def a = new Foo() // Object
OO Programming


• Class型OO

• Objectのインスタンス化と属するメソッドで
 メッセージングを行う。
OO Programming

• Closureはあるが、トップレベル関数などはな
い。

• レコード、タプル、代数的データ型、パター
ンマッチがない
Java Friendly

• do while, abstract method on enum, ==, [a,b,c] な
 どの数個を除いてJavaと同様の動きをする。

• == は equalsで動作する

• [a,b,c]は配列ではなくArrayListとして動作する
Script


• トップレベルに書いたものはそのまま動作す
る

• もちろんClassを書いておくこともできる。
A Lots of Syntax sugar


• [*1..10].each{println it}
• http://www.slideshare.net/nobeans/the-report-of-
  javaone2011-about-groovy/14
Groovy


• MOP API
• AST API
• DSL
まとめ

• 今年で10周年なのでお祝いイベントやりたい

• 選択的型付けOOProgramming

• PHP化しないことを祈る

• ツール的に扱うのに親和性が非常に高い
覚悟して参りましょう!

More Related Content

PDF
Groovy indy 20120222
PDF
Read Groovy Compile process(Groovy Benkyoukai 2013)
PDF
enterprise grails challenge, 2013 Summer
PDF
JavaのテストGroovyでいいのではないかという話
PPTX
開発現場で使えるかもしれないGroovy
PDF
Markup Template Engine introduced Groovy 2.3
PDF
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
PDF
G* Workshop in Fukuoka - Introduction
Groovy indy 20120222
Read Groovy Compile process(Groovy Benkyoukai 2013)
enterprise grails challenge, 2013 Summer
JavaのテストGroovyでいいのではないかという話
開発現場で使えるかもしれないGroovy
Markup Template Engine introduced Groovy 2.3
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
G* Workshop in Fukuoka - Introduction

What's hot (20)

PDF
レビューで保守性のためにした コメントをふりかえってみた
PDF
Go mobileでモバイルアプリを作ろう
PPTX
やさしいGitの内部構造 - yapcasia2013
PDF
WindowsでGitを使う際のベストプラクティス
PDF
GoによるiOSアプリの開発
PDF
Goji とレイヤ化アーキテクチャ
PDF
GoでEPC作って本番運用している話
PDF
PDF
Golang入門
PDF
やりなおせる Git 入門
PDF
Introduce Toaster (Toasterのご紹介)
PDF
Goでwebアプリを開発してみよう
PDF
Go一緒にいかが?
PPT
Mrubyの始め方
PDF
Gitの使い方あれこれ
PDF
Webフレームワークパネル(Django) at PyConJP 2012
PDF
個人で作っているgoのプロダクト by zchee編
PDF
Managed your slides by Git and upload them
PDF
ポイントをおさえて移行しよう!Git乗り換え超初級
PDF
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
レビューで保守性のためにした コメントをふりかえってみた
Go mobileでモバイルアプリを作ろう
やさしいGitの内部構造 - yapcasia2013
WindowsでGitを使う際のベストプラクティス
GoによるiOSアプリの開発
Goji とレイヤ化アーキテクチャ
GoでEPC作って本番運用している話
Golang入門
やりなおせる Git 入門
Introduce Toaster (Toasterのご紹介)
Goでwebアプリを開発してみよう
Go一緒にいかが?
Mrubyの始め方
Gitの使い方あれこれ
Webフレームワークパネル(Django) at PyConJP 2012
個人で作っているgoのプロダクト by zchee編
Managed your slides by Git and upload them
ポイントをおさえて移行しよう!Git乗り換え超初級
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
Ad

Viewers also liked (7)

PDF
Groovy base gradle_20130309
PDF
Groovy kisobenkyoukai20130309
PDF
GContractsの基礎
PPTX
GroovyのJSONで日付・時刻を扱う
PDF
Spockの基礎
PDF
GParsの?Actor Model
PPTX
Groovyスクリプト"再"入門 起動編
Groovy base gradle_20130309
Groovy kisobenkyoukai20130309
GContractsの基礎
GroovyのJSONで日付・時刻を扱う
Spockの基礎
GParsの?Actor Model
Groovyスクリプト"再"入門 起動編
Ad

Similar to The History of Groovy #GroovyBase (20)

PDF
「プログラミングGroovy」入門(公開用)
PPT
G*workshop sendai 20100424(v2)
PDF
Groovyの紹介20130323
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
PDF
Groovyでjson
PDF
Groovy Bootcamp 2015 by JGGUG
PDF
簡単!Groovy入門
KEY
Aizu lt tokyo_luxion
PDF
JavaとRubyのすてきな関係
PDF
Grailsのススメ(仮)
PDF
Groovy Grails eXchage 2014 報告
PDF
G * magazine 0
PPTX
開発を彩る技術たち
PDF
Groovyで楽にSQLを実行してみよう
PDF
JJUG CCC 20150411 grails3 Spring-boot
ODP
Introduction of Python
PPTX
DevSummit2011JGGUG OpenJam: Groovy
PDF
Rubyとプログラミング言語の潮流
PDF
イマドキの現場で使えるJavaライブラリ事情
PPT
第5回勉強会
「プログラミングGroovy」入門(公開用)
G*workshop sendai 20100424(v2)
Groovyの紹介20130323
Java開発の強力な相棒として今すぐ使えるGroovy
Groovyでjson
Groovy Bootcamp 2015 by JGGUG
簡単!Groovy入門
Aizu lt tokyo_luxion
JavaとRubyのすてきな関係
Grailsのススメ(仮)
Groovy Grails eXchage 2014 報告
G * magazine 0
開発を彩る技術たち
Groovyで楽にSQLを実行してみよう
JJUG CCC 20150411 grails3 Spring-boot
Introduction of Python
DevSummit2011JGGUG OpenJam: Groovy
Rubyとプログラミング言語の潮流
イマドキの現場で使えるJavaライブラリ事情
第5回勉強会

More from kyon mm (20)

PDF
Scrum,Test,Metrics #sgt2016
PDF
Kaizen process with test #hackt
PDF
ザ・ジェネラリスト #5000dai
PDF
ICST2015 GUI Testingの紹介 #SIGSTJ
PDF
焦らず急いでの意味
PDF
Sta introduction in_kyoto #devkan
PDF
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
PDF
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
PDF
#STAC2014 システムテスト自動化ハンズオン
PDF
テストファースト、自動テストを導入するという事について(@社内勉強会)
PDF
Gradle 2.2, 2.3 news #jggug
PDF
テストとリファクタリングに関する深い方法論 #wewlc_jp
PDF
Groovyで学ぶプロセス代数 #jjug
PDF
テストエンジニアの品格 #automatornight
PDF
@kyon_mmの書籍の読み方 #AsianAA
PDF
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
PDF
GradleのREPLプラグイン紹介 #jggug
PDF
契る意味 #pykonjp2014
PDF
いつでも聞けるTDD入門 #TDDBC_NAGOYA
PDF
Test Retrospective #kyon_kao_wedding in Tokyo
Scrum,Test,Metrics #sgt2016
Kaizen process with test #hackt
ザ・ジェネラリスト #5000dai
ICST2015 GUI Testingの紹介 #SIGSTJ
焦らず急いでの意味
Sta introduction in_kyoto #devkan
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 システムテスト自動化ハンズオン
テストファースト、自動テストを導入するという事について(@社内勉強会)
Gradle 2.2, 2.3 news #jggug
テストとリファクタリングに関する深い方法論 #wewlc_jp
Groovyで学ぶプロセス代数 #jjug
テストエンジニアの品格 #automatornight
@kyon_mmの書籍の読み方 #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
GradleのREPLプラグイン紹介 #jggug
契る意味 #pykonjp2014
いつでも聞けるTDD入門 #TDDBC_NAGOYA
Test Retrospective #kyon_kao_wedding in Tokyo

The History of Groovy #GroovyBase