今日のひがさんのエントリを読んで、appengineとは全然関係ないけど思ったことを書きます。
http://d.hatena.ne.jp/higayasuo/20101109/1289290143
ひがさんのエントリでは、appengine/Javaのスピンアップ問題を解決するために、静的HTMLをレスポンスして、JavaScriptで後から動的なデータを取得するパターンが提案されています。
別にこれ、appengineに限らず最近僕の近辺ではトレンドだなと思っていました。
SEOがあるので、サーバーサイドテンプレートもまだ必要だとは思いますが。
それで、思ったのがプログラマーの仕事についてです。僕が見てきたことを書きます。
むかしはJSPを書くだけのプログラマーがいました。
むかしむかし、ウェブシステムの画面はJSPという難解な呪文を駆使しなければ書けない、とても高級なものでした。
しかし、世の中には、「JSPが書ける」プログラマーが沢山いました。少しコツを教えればすぐにやり方を覚えてくれるので、派遣さんや学生のアルバイトが多く担当しました。
彼らは、デザイナーさんが書いたHTMLを「HTMLきもーい」とか言いながら、一生懸命コピペしていました。
この仕事は誰でもできる反面、誰がやっても同じくらいのコストがかかる仕事でした。優秀なプログラマーなら、普通のプログラマーの20倍は生産するのが普通な現場ですが、みんな一律に同じ程度の時間がかかるのです。それに、デザインを組み込むために何週間もかかるため、お客様にもご迷惑がかかりました。
それを解決したのが、(弊社の場合は)Mayaaでした。最初の導入は大変でしたが、導入後は、デザイナーの人が一人でサイト全体のデザインをしてくれるようになりました。もう、JSPを書けるだけのプログラマーは必要なくなり、プログラマーはJavaに専念し、デザイナーはHTMLに専念することができるようになりました。時々、中間言語のmayaaファイル(XML)を書かなければいけないのですが、こういう時、プログラマーは腕の見せ所でカッコ良く対応してあげるとデザイナーさんからの株が上がります。大いにがんばりましょう。
ところが、これを導入してたった半年で時代は変わりました。
みんな、JavaScriptでなんとかしたくなっていたのです。
MayaaはJavaScriptの変数を置換することはできません。強引にやることもできますが、やるべきではありません。セキュリティー的に。
それではどうするのかというと、一旦mayaaでspanタグにデータを落として、スタイルシートで非表示にし、JavaScriptから、getElementByIdしてinnerHTMLなどで値を取得するという方法が良さそうです。
これくらいのことなら、デザイナーさんにレクチャーすればやってもらえるのですが、
デザイナーといえど、JavaScriptを知らなければやっていられない時代なんだなと思います。
このことにとどまらず、今、毎日のように、デザイナーさんがいろんなJavaScriptをWEBから見つけては、「動かない」と悩んで僕に質問をします。その都度、「これはjQueryのバージョンが合わない」とか「このJavaScriptわかってない人が書いてるから使わない方が良い」とか答えるのですが、時には「わかった。僕がやっとくよ」ということもあります。
今までは、
Java, JSP, HTML(CSS)
と、それぞれの言語で話していたことが、今は
HTML/JavaScript
という共通の言語でプログラマーとデザイナーが会話をしているのです。
本当はUIプログラマーという職種が、橋渡しを担当するのでしょうか?でも、なんだかむしろ、今時のWebはUIを取ってしまったらあとは何も残らないくらいUIに依存しているので、UIプログラミングのできないプログラマーも、JavaScriptの書けないデザイナーもあんまり活躍できないのではないかと思います。
その後の追記
ついに、デザイナーさんから、「私ができそうなところは私がmayaa書いていいですか?」と言われました。もはや最強!
プログラマーに取ってmayaaファイルを書く事はXMLプログラミングですので、割と苦痛なのですが、デザイナーさんにとっては、JavaScriptよりもフレンドリーのようです。
この記事は以前多くのブックマーク・コメントを頂きました。
これからブックマークされる方はこちら↓