GWTでわかるかもしれないXtendの魅力第8回ファントムタイプ勉強会株式会社ファントムタイプ@yusuke_kokubo
今日の流れ• Xtend早わかり• GWT早わかり• こくぼが作ったアプリを見てみよう
Xtend早わかり• プロパティ• 拡張メソッド• 簡単な型推論(var / val)• 演算子オーバーロード• ラムダ式• Active Annotations• No statement• Literals
Xtendお試し• http://www.eclipse.org/xtend/download.html• ここからFull Eclipseをダウンロードするのが1番手っ取り早い
Xtendの特徴• Javaコードジェネレータ• 基本的にJava• 冗長なJavaコードを解き放つ• 言語としての面白みはない
Xtend - プロパティJava::public class Hoge {private String name;public String getName() {return name;}public void setName(String...
Xtend 拡張メソッド"hello".toFirstUpper() // calls StringExtensions.toFirstUpper("hello")persistenceManager.save(myObject); -> my...
Xtendのvar / val• Scalaとだいたい一緒だと思う• Fieldにも使える
Xtend - 演算子オーバーロードval x = 2.71BD1. val y = 3.14BD2. val sum = x + y // calls BigDecimalExtension.operator_plus(x,y)e1 += e...
Xtend - ラムダ式Java::1. final JTextField textField = new JTextField();2. textField.addActionListener(new ActionListener() {3....
Xtend -ActiveAnnotations• アノテーションプロセッサーをがっつり書くことができる• 標準のアノテーションとして@Property, @Dataがある• 詳しくはEclipseでexampleのプロジェクトを作成して実行•...
Xtendまとめ• なにがいいの?• Javaコードジェネレータである• あくまでもJava• 新しいパラダイムはない• Just a better Java
GWT• Google Web Toolkit入門
GWT早わかり• Java to JavaScriptのためのツールキット• コンパイラ• Widget• クライアントブラウザごとに最適化したjsを出力してくれる• ターゲットはJVMではなくJava
GWTの特徴• 日本での知名度はいまいち• 世界的に見ると大きなコミュニティがある• Google, RedHat, Sencha, Intellij,Vaadin• 歴史は長く成熟してる
Who use GWT ?• Wave(co-meeting)• adwords• Google Apps Console• Api Console• Api Explorer• URL Shortener• Wallet• Evernote
GWTの特徴• html• Module• EntryPoint• Widget• RPC
引用 : http://posts.pretica.com/?p=145
GWT-RPC引用 : https://developers.google.com/web-toolkit/doc/latest/DevGuideServerCommunication
GWT最大の弱点• Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えないJ...
なぜGWTを使うのか?• Production Ready• 世界的なコミュニティ• Eclipseで完結できる• 別にEclipseがすごいIDEと言ってるわけではありません
でも...• Javaプログラミングは面倒で...• そこでXtend!
.java.class.scala.groovy.xtend .jsXtend GWTJavaScalaGroovy唯一絶対無二の道GWT meets Xtend
GWTまとめ• Production Ready• 世界中で使われてる• Xtendとの強力タッグ• Better JavaでフルAjaxのWebアプリ• Eclipseさえあればよい
参考URL• https://boostgithub.appspot.com/• GWT + Xtendでgithub-apiにアクセスしているアプリ• http://mi-sisi.appspot.com/• GWT + XtendでGWTV...
Upcoming SlideShare
Loading in …5
×

第8回ファントムタイプ勉強会xtendとgwt

511
-1

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
511
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

第8回ファントムタイプ勉強会xtendとgwt

  1. 1. GWTでわかるかもしれないXtendの魅力第8回ファントムタイプ勉強会株式会社ファントムタイプ@yusuke_kokubo
  2. 2. 今日の流れ• Xtend早わかり• GWT早わかり• こくぼが作ったアプリを見てみよう
  3. 3. Xtend早わかり• プロパティ• 拡張メソッド• 簡単な型推論(var / val)• 演算子オーバーロード• ラムダ式• Active Annotations• No statement• Literals
  4. 4. Xtendお試し• http://www.eclipse.org/xtend/download.html• ここからFull Eclipseをダウンロードするのが1番手っ取り早い
  5. 5. Xtendの特徴• Javaコードジェネレータ• 基本的にJava• 冗長なJavaコードを解き放つ• 言語としての面白みはない
  6. 6. Xtend - プロパティJava::public class Hoge {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}}public class Client {public void hoge() {Hoge hoge = new Hoge();hoge.setName("hoge");System.out.println(hoge.getName());}}Xtend::class Hoge {@Property String name;}class Client {def hoge() {val hoge = new Hoge()hoge.name = "hoge"println(hoge.name)}}
  7. 7. Xtend 拡張メソッド"hello".toFirstUpper() // calls StringExtensions.toFirstUpper("hello")persistenceManager.save(myObject); -> myObject.save1. class MyClass {2. def doSomething(Object obj) {3. // do something with obj4. }5.6. def extensionCall(Object obj) {7. obj.doSomething() // calls this.doSomething(obj)8. }9. }標準ライブラリローカル拡張DSL的な書き方をするのに使える
  8. 8. Xtendのvar / val• Scalaとだいたい一緒だと思う• Fieldにも使える
  9. 9. Xtend - 演算子オーバーロードval x = 2.71BD1. val y = 3.14BD2. val sum = x + y // calls BigDecimalExtension.operator_plus(x,y)e1 += e2 e1.operator_add(e2)e1 -= e2 e1.operator_remove(e2)e1 || e2 e1.operator_or(e2)http://www.eclipse.org/xtend/documentation.html#operators使用可能な演算子は上記のURLを参照一例
  10. 10. Xtend - ラムダ式Java::1. final JTextField textField = new JTextField();2. textField.addActionListener(new ActionListener() {3. @Override4. public void actionPerformed(ActionEvent e) {5. textField.setText("Something happened!");6. }7. });Xtend::1. textField.addActionListener [2. textField.text = "Something happened!"3. ]SAMのinterfaceだったら型推論してくれるそうじゃなかったらアダプターを書く必要がある(GWTのAsyncCallBackとか)
  11. 11. Xtend -ActiveAnnotations• アノテーションプロセッサーをがっつり書くことができる• 標準のアノテーションとして@Property, @Dataがある• 詳しくはEclipseでexampleのプロジェクトを作成して実行• メタプログラミングの醍醐味• まだベータ版なので動作が不安定
  12. 12. Xtendまとめ• なにがいいの?• Javaコードジェネレータである• あくまでもJava• 新しいパラダイムはない• Just a better Java
  13. 13. GWT• Google Web Toolkit入門
  14. 14. GWT早わかり• Java to JavaScriptのためのツールキット• コンパイラ• Widget• クライアントブラウザごとに最適化したjsを出力してくれる• ターゲットはJVMではなくJava
  15. 15. GWTの特徴• 日本での知名度はいまいち• 世界的に見ると大きなコミュニティがある• Google, RedHat, Sencha, Intellij,Vaadin• 歴史は長く成熟してる
  16. 16. Who use GWT ?• Wave(co-meeting)• adwords• Google Apps Console• Api Console• Api Explorer• URL Shortener• Wallet• Evernote
  17. 17. GWTの特徴• html• Module• EntryPoint• Widget• RPC
  18. 18. 引用 : http://posts.pretica.com/?p=145
  19. 19. GWT-RPC引用 : https://developers.google.com/web-toolkit/doc/latest/DevGuideServerCommunication
  20. 20. GWT最大の弱点• Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えない Java言語でしか使えないJava言語でしか使えない
  21. 21. なぜGWTを使うのか?• Production Ready• 世界的なコミュニティ• Eclipseで完結できる• 別にEclipseがすごいIDEと言ってるわけではありません
  22. 22. でも...• Javaプログラミングは面倒で...• そこでXtend!
  23. 23. .java.class.scala.groovy.xtend .jsXtend GWTJavaScalaGroovy唯一絶対無二の道GWT meets Xtend
  24. 24. GWTまとめ• Production Ready• 世界中で使われてる• Xtendとの強力タッグ• Better JavaでフルAjaxのWebアプリ• Eclipseさえあればよい
  25. 25. 参考URL• https://boostgithub.appspot.com/• GWT + Xtendでgithub-apiにアクセスしているアプリ• http://mi-sisi.appspot.com/• GWT + XtendでGWTVisualization APIを使ってるアプリ
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×