がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

Google Web Toolkit(GWT)をネタにしたカンファレンスに行ってきました

先日。豆ナイトなる、カンファレンスに伺いまして。GWT周りのお話を伺ってきました。
そのリポートです。
そのカンファレンス自体については
http://mamezou.net/modules/mamenight1/index.php?id=12
とか当日資料は
http://www.mamezou.net/mamenight/documents/mamenight027/gwt.pdf
とかをご覧ください。


先に「前置き」とか書いておきます*1
別に全面的に否定するつもりは、少なくとも現時点ではありません。
ただ、大抵の技術には一長一短あるものです…が。その短の部分を語らずして使うものではない、と私は考えています。
で…見事なほどに短の部分が語られていないなぁ、という感じがいたしまして。
かくして、かような「突っ込み文章を書く」に至ったです。


ゆえに辛口です。先にお断りしときます。


とりあえずまず「GWTってなんじゃらほい?」
ようは「Javaで組んでコンパイルしたらJavaScriptになる」げな感じのブツ。
ブラウザの差異を吸収してくれたりとか、そういった部分で少なからずメリットはあると思うのですが………まぁいろいろと疑問は尽きないわけです。
その辺はおいおい。


講義している人について。
いわゆる上流部分だけ。分析、要求から仕様部分作成、まで。実装はあまりやっていないっぽいって本人が言ってました。
正直。色々と「納得」です。やはり、現場を知らない上流設計者は以下略。


GWT登場の背景
…っていうタイトルがあったです。
「背景が関係ない」?
いやまぁリップサービスなんだろうとは思うけどそれにしても…ちょっとどうなんでしょうかその言動は。
背景はたいていの場合において「ものごっつく重要」だと思うんですがね。


Ajax開発の短所で…
・C/SシステムやWebシステムよりも高度な設計、開発スキルが必要
高度じゃなくて「異質」なのでは?
少なくとも一緒くたにした状態で「高度だのなんだの」って語るの、おぢちゃん嫌いだな。


JavaScriptについて
・コードの重複(入力値の妥当性確認など)
「クライアントとサーバとで別々に妥当性のチェックをするのは冗長なのでは?」とかおっしゃっていたのですが。
CとSとで別途やるのはごく当たり前で問題視することではないのでは?


GWTを使ったシステム
いわゆるGWTが「サーバ側とクライアント側をつなげる」っぽい感じなんだけど。
「危ない外海を通信する」意識が薄くならないか?
実際、後半の質問でおぞましい内容が………


サンプルコードで1突込み
Panel objectにaddメソッドでボタンのinstanceとかをべたで突っ込んでる。
デザイン変更どうするんだろ?


などなど。突っ込みを散文的に書いてみましたが。
見てる限りでは正直、問題点山積みです。


デザインテンプレート関連が完全に未解決っぽい上にほとんどはなしも上がらない。
そもJavaScriptふくめセキュリティ的に「どうなの?」って部分がすっからかん。
プログラム性能とかチューニングとかが不明。Java自体最近重々でいやなのに、それをコンパイルしたjavaScriptがどんだけのモノなのかがかなり不明。でかいデータ食わせて大丈夫なのか、ってのもあるし。
通信量が格段に上がると思うんだが。特に「1文字入力すると候補が出てくる」とかその系。サーバとかネットワーク回線とかにかかる負荷の話なんかひとかけらもでやしねぇ。どうするんだべさ?


それ以外には。
いわゆる「バリアフリーPage」関連ってどうなんだろ?
アクセス解析がだいぶん様変わりしそうなんだけどその辺の考察は?
って部分もある。


で。
質問で「腰が抜ける質問」と「魂が抜けそうな回答」があり、おどろいた。
「input streamとかoutput streamとかで、サーバ側とクライアント側でインスタンスの共有ができないか?」って感じの趣旨だったと思う。
怖いのが、講師の方が特にそれを危険視も問題視もしていないげな発言をしていたこと。


ある1限定的側面から考えると。わからないでもないです。Java関連で、ぐぐぅるあたりで「オブジェクト 永続化」とかやると山盛りに出てくるURLでもごらんいただきつつ。
シームレスなインスタンスが色々と手間やら面倒やらをある程度ヘッジしてくれるって発想が、理解できないとはいわないです。
でもね。でもね。でもね。
それを現実問題として「どうやって解決して」それに対する「長短がどのあたりにあるのか」くらい、考察しないもんなんでしょうか?


しみじみ思った。「ああだからhiddenにインスタンスシリアライズしただけのブツとか設定しだすんだろうなぁこの馬鹿ども」。
なんていうんだろ…「基礎がまるっきりできてない」としか思えないです正直。


Ajaxは確かに便利だとは思うです。でもそれは「切れる刃物が便利」なのと同等の便利さなので。
つまりは「キ○ガイに刃物」に、容易になりうるですよ。
OO的な考え方で「実装によらずに設計やらコーディングやらができる」っていうのは。「知らなくていい」ではなくて「考えなくていい」なので。必要に応じては一度きちんと「考えなきゃいかん」ですよ。


GWT、ひいてはAjaxそのものの「怖さ」が改めて認識できる、よいカンファレンスではありました。


追伸。
ひとつ怖いのは「そのサイトがなにしでかすかわからん」部分だと思うんですよね。
そういう意味で。ネームバリューのある大手Googleとしてはその部分が容易にヘッジできるので。…「うわぁ競争相手思いっきり減らしたよこの人たち」とか思ってみたりはします(苦笑

*1:言い訳とかいうな