ぼくがJavaのひとに「ガツン」と申し上げられて思ったこと
http://d.hatena.ne.jp/higayasuo/20090612/1244772658
まず、たしかに私は主にRubyを使う人だけど、別にRubyもPythonも、ましてやLL系全般なんて代表してないので「LLの人」って括りは勘弁して欲しいなぁというのが本音。ぼかすなら「そのときのスピーカーの一人」程度の表現にしてほしかった。
あのときはひがさんが明らかに怒ってたんでチキンな私はびっくりして回答内容をあんまり覚えてないんだけど(すぐあとにYoshioriさんがゆるい回答で笑いとってくれてほっとした)、質問の内容はひがさんが書いてある通り
「Google App Engineは、Python版以外にJava版も出たけど、サンプル見たけど、たくさんコード書かなければいけなくて、正直どこがいいのか教えて欲しい」
要するにGAE for PythonとGAE for Javaについてしか聞いてないし、Googleのドキュメントでソースを比べたら誰だって思うことなんだから、Java対LLなんて対立軸を作って怒られてもちと困る。
せっかくひがさんくらい使い込んでる人が答えてくれるなら、あの場では私に「がつん」っていうんじゃなくて、私への回答のふりをして私以外の参加者にJava版GAEの特色を語って欲しかった。軽いジャブを皮切りに、聴衆巻き込んだポジショントークのやり取りでGAEのJava版、Python版両方の特徴がはっきりしたら面白いかなと思ったんだけど、うまくいかんもんですな。
ちなみに私がちょっとだけJava版使って思ったのは「Java版はGWTと組み合わせて使ったら最強かもしれん」ってこと。Slim3はGWTとうまく適合してるんだろうか。
最後になりますがひがさんに不快な思いをさせてしまったことについてはすいませんでした。Slim3には期待していますのでがんばってください。
・・・
いま読んだけどその次のエントリには100%同意
※参考(Greetingモデル定義)
Python
from google.appengine.ext import db class Greeting(db.Model): author = db.UserProperty() content = db.StringProperty(multiline=True) date = db.DateTimeProperty(auto_now_add=True)
package guestbook; import java.util.Date; import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.IdentityType; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; import com.google.appengine.api.users.User; @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Greeting { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private User author; @Persistent private String content; @Persistent private Date date; public Greeting(User author, String content, Date date) { this.author = author; this.content = content; this.date = date; } public Long getId() { return id; } public User getAuthor() { return author; } public String getContent() { return content; } public Date getDate() { return date; } public void setAuthor(User author) { this.author = author; } public void setContent(String content) { this.content = content; } public void setDate(Date date) { this.date = date; } }