Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The History of Groovy #GroovyBase

5,499 views

Published on

Published in: Technology
  • Be the first to comment

The History of Groovy #GroovyBase

  1. 1. The History of GroovyGroovy基礎勉強会 #GroovyBase
  2. 2. 自己紹介• kyon_mm きょん• 自称Groovyエヴァンジェリスト• 2011.9 - なごやのテストエンジニア• Groovy, Test, CD, Agile, etc...
  3. 3. Phantom Type• 名古屋のソフトウェア開発企業です。• http://www.phantomtype.com
  4. 4. スポンサー広告• 今回の勉強会開催にあたって @kyon_mmを支援してくださっている企業さんの広告になります。
  5. 5. Phantom Type• ファントムタイプ社の目指すところは「コミュニティ活動のバイタリティを支援する」ことです。
  6. 6. Phantom Type• コミュニティ活動とは例えば「⃝⃝ BootCampを主催する」だとか「××言語スタートアップを主催する」とかそういうのです。特に技術的な面にこだわっているわけではありません。
  7. 7. Phantom Type• ファントムタイプ社がやりたいのはコミュニティを主催したい人たちの交通費、宿泊費、開催場所とか諸々の支援です。
  8. 8. ここから本編
  9. 9. Agenda• Groovy年表• Groovy全体像
  10. 10. Groovy• 2003 Birth• 2004 GroovyOne• 2007 Groovy 1.0 Release!• 2009 Groovy 1.5 Release!• 2012 Groovy 2.0 Release!
  11. 11. Background• JamesがPythonに触発されてJavaに持ち込もう とする• Inspired by Ruby, Smalltalk, Clojure, etc.
  12. 12. Ruby• Collection • each, every, grep, collect, inject• mixin( != trait )
  13. 13. Clojure• trampoline• Agent(GPars)
  14. 14. JSR-241• Groovy言語はJavaの第二言語として認められる。(第一言語はJava言語
  15. 15. Impact• Groovy1.5• Groovy2.0
  16. 16. Groovy1.5• Java 5• SwingBuilder• Java/Groovy mix Compile
  17. 17. Groovy2.0• Embedded Static Type Check• JDK7 Support
  18. 18. Groovy in Japan• Grails 0.3 ∼ 1.0 近辺 => Javaでのアジャイル開 発支援として知名度があがる• Groovy 2.0 近辺 => NTTソフトウェアの外向 けのGroovy活動が活発になる
  19. 19. Agenda• Groovy年表• Groovy全体像
  20. 20. Groovy• Dynamic Type( != Dynamic Language)• OO Programming• Java Friendly• Script• A Lots of Shortcut (compared to Java Language)
  21. 21. Dynamic Type• int a = 1 // int• Foo a = new Foo() // Foo• def a = 1 // Object• def a = new Foo() // Object
  22. 22. OO Programming• Class型OO• Objectのインスタンス化と属するメソッドで メッセージングを行う。
  23. 23. OO Programming• Closureはあるが、トップレベル関数などはない。• レコード、タプル、代数的データ型、パターンマッチがない
  24. 24. Java Friendly• do while, abstract method on enum, ==, [a,b,c] な どの数個を除いてJavaと同様の動きをする。• == は equalsで動作する• [a,b,c]は配列ではなくArrayListとして動作する
  25. 25. Script• トップレベルに書いたものはそのまま動作する• もちろんClassを書いておくこともできる。
  26. 26. A Lots of Syntax sugar• [*1..10].each{println it}• http://www.slideshare.net/nobeans/the-report-of- javaone2011-about-groovy/14
  27. 27. Groovy• MOP API• AST API• DSL
  28. 28. まとめ• 今年で10周年なのでお祝いイベントやりたい• 選択的型付けOOProgramming• PHP化しないことを祈る• ツール的に扱うのに親和性が非常に高い
  29. 29. 覚悟して参りましょう!

×