実はその逆の設問もありうる。「プログラムはデザイナーのものなのか」。
矢野勉のはてな日記 - PHPやJavaのJSPやRubyのeRBのクールじゃないところsimfonyの10分デモを見てて考えたことがきっかけではあるんだけど、実はRuby on Railsの勉強で本を読んでた時にも思ったこと。彼らはHTMLファイルにコードを書くことをなんとも思ってないんだね。もちろん、プログラマからすればその方が早いのかもしれないけどね、私には「HTMLはプログラマのものなの?」という思いがあります。
プログラマーに限らず、「プロ」は、分業する際お互いの領域を侵さないようにするのが作法(best practice)であると、プロの多くが思い込んでいる。「コードとデータの分離」をプログラマーが耳たこのように聞かせられてきたのも、その一環である。
ここまでは、いわば「専門家のモダニズム」といったところだろうか。
ところが、最近は専門家の領域をまたがった仕事がありとあらゆる方面で増えつつある。別に鶴太郎の絵ばかりではない。本blogの内容にしてからそうだし、そしてプログラミングの世界の例外ではない。
「コードとデータの再融合」というのは、「専門家のポストモダニズム」とでも言うべき現象なのかも知れない。どちらかというとデータ側からのコードへの歩み寄り、すなわちテンプレートの進化系としての、PHP/xSP (where x = perl, python, ruby, java, even haskell and more)といったプログラミング環境が注目されるが、実のところLLのLightたる所以の一つが、「コード側からのデータへの歩み寄り」である点をプログラマーたちは以外と忘れがちだ。
例えば、Cには文字列を引用するのに""しか使えないが、これがShell Scriptになって""と''の区別とHere Textが加わった。これがperl 5になると、q''、qq""、qw()、qx``そしてqr//と多彩になり、これらはrubyにも取り入れられて行った。私がJavaScriptがイケてないなあと思う理由の一つが、古典的なquoteしか持たないことにもある。
実際のところ、プログラマーとてデータをコードから完全に分離するのは不可能で、そしてデザイナーとてコードを念頭におかないことは不可能なのだというのが、「コードとデータのごった煮」の復権の背景にあるのだと思う。100%プログラマーも100%デザイナーも結局ありえなかったのだ。
とはいえ、それは単純に「どっちがどっちの仕事をしてもいいじゃん」ということではない。やはり分業のあり方にも、善し悪しははっきりでる。そしてどこで善し悪しが出るかというと、プログラマーがデザイナーを、そしてデザイナーがプログラマーをどれだけ意識するかということで出てくる。
だから、
矢野勉のはてな日記 - PHPやJavaのJSPやRubyのeRBのクールじゃないところ彼らデザイナーの仕事を尊重するには、極力HTMLに触らないしかないと思うんです。彼らのプロの仕事を再現するには、彼らの作ったものをそのまま使うのが一番いい。
というのは、実はデザイナーを尊重しているようでいて「デザイナーにはプログラマーのことはわからない」というあきらめに私は見えてしまう。少なくとも、「ここは変数で展開するから、こうした方がありがたい」ぐらいのことは言った方がいいし、その方がデザイナーだって嬉しいのだ。
逆にデザイナーのみなさんから、「ここはこういう風に見えて欲しい」という要望はきちんとプログラマーに理解できる言葉で伝えて行くべきだ。テンプレート言語の乱立の背景には、この要望がきちんと伝わっていないということも大いにある。
やってて一番気持ちのいいパターンというのは、プログラマーの気持ちが分かるデザイナーがテンプレートを作り、それにデザイナーの気持ちがわかるプログラマーがロジックを載せて行くというもの。これがうまく行ったときの気持ちよさは、一人でどっちもやった場合にはるかに勝る。
では、どうするとそこにたどり着けるかというと、今のところ私は論理的な解答を持ち合わせていない。審美眼、としかいいようがない。美しく仕事をしようする人たちと仕事をすると、こちらまで美しくなったような気がする。結局のところ、プログラミングもデザインも、「美」に仕えるものという点では同じ仕事ではないかと思ったりするのだ。
それにしても、我ながら美しくないページではあるなあ、本blogは。いいデザイナーさんにそろそろお願いしてみようか知らん。
finalventの日記 - ブログのデザインについてちと弾さんのブログのデザインもすごいベタな感じ。あれだけコードを美的に書く人がなぜあのデザイン。
ほんと、返す言葉なし。
Dan the Artist
実際にDHHのところではそれでうまく行っているという話も見たのですが、
まとまったソースは今見つけられず、、