WordPressのソースコードを眺めた
WordPressを使うようになって、さてそろそろ便利な拡張でもしてみるかと思ったのだけれど、中身を見てみるとなんだかとっても汚い。デザインとコードは全然分離していないし、OOのオの字もなくて、昔懐かしいfunctionの山が並んでいて、名前空間の衝突は避けられない。バージョン2.1だから、もうそれなりに時間も経っていて、しかもPHP-NukeやXOOPS、GeeklogなどなどのPHPで書かれたCMSの後から登場しているのだから、先達の知恵もさぞかし活用しているのかと期待していたら、とんでもない肩すかしをくらう。
普及しているのは、WordPressのホスティングサービスと、かっちょいい管理画面のUI、それにインストールがとんでもなく簡単なことが理由なのだろう。つまり、見た目重要、簡単さ重要。
何かが普及する理由というのは、見た目とライトユーザにとっての簡単さというのはとても重要みたいだ。そうでなければ、PHPだってこんなに流行しているはずがない。言語としての比較なら、誰だってRubyの方がいいと思うだろう。でも、いざ開発するとなると、PHPはかなり初期から環境構築が簡単で、HTMLで見た目をそのまま書いてしまってちょこっと機能をくっつけるだけで何やらすごそうなものがひょいと出来上がる。初心者にとってすぐに結果が見えてHTMLを知っていればすぐに取りかかれるなんてなんだかとっても素晴らしいじゃないか。
この事実は、ある種の人をいらだたせることにもなる。そりゃそうだ。理想の言語を追い求めている真面目な開発者にとって、PHPなんて邪道もいいところだ。こんな難解なコードがまかり通るなんて恐ろしい。
<?php if("123test" == 123){ print("OK\\n"); }else{ print("NG\\n"); } ?>
ちなみに、上のコードの結果は型チェックが入らない「==」を使っているから「OK」になる。誰もが発狂するだろう。もちろん、「if(“123test” == ‘123’){」と書けばNGになるが。
#!/usr/bin/env ruby if("123test" == 123) then print "OK\\n" else print "NG\\n" end
これなら「NG」になって全米が泣く。プログラマが余計なことを考える必要がないのが優れた言語だという価値観からすると、普通の神経ならこうでないと参ってしまうだろう。
しかし、普段仕事で開発プラットフォームになるフレームワークの開発をしている人間として参考にしようと思ったら肩すかしをくらったのであれこれ文句を書いてみたが、逆にWordPressやPHPが普及しているという事実から学ぶことも必要なのかもしれない。つまり、見た目と簡単さが重要、ということ。だから、基本的な機能としてJavascriptのエフェクトやCSSの書き出しが簡単に出来て、基本的なUIのセットを持っているフレームワークにしていかないと訴求力というかもっとはっきりいってしまえばみんなが納得する魅力はどんなに頑張っても出せないと認識するべきだ。
以前、Rubyの中の人にアホな通りすがりとして上と似たようなことを質問してみたことがあった。PHPがダメな言語だとして、では世の中の決定権を持っている人たちが、どうしてPHPなんかを選ぶと思うのか。答えはなかったが、それは名前が重要なんじゃなくて、ましてや言語が素晴らしいからでは全然なくて、想像を絶する存在であるところのライトユーザと、想像を絶するようなお気軽開発者にとっては魅力的なものがPHPには備わっているからだ。たとえよく見てみるとどうしようもないところもたくさんあったりしたとしても。
ウェブの開発ばっかりやっていてデスクトップ向けのアプリ開発の経験がない立場からいうと、Pythonのあのしょぼいウィジェットだってすごく魅力的だと自分が思うのは、それが優秀なデスクトップのアプリケーション開発者からみれば想像を絶するようなへっぽこ開発者にとってお手軽で自分でもなんだかやれそうな気がして見た目も十分満足できるような代物だったからだ。Pythonのウィジェットの可能性やその素晴らしさが存在していないかのような物言いだが、あの外観がしょぼいこと、その機能が非常に限定されていることは揺るぎない事実だ。あんなものアプリケーションじゃねえ、という意見もごもっとも。だけど、手が届きそうだというのは非常に重要で、誰もが憧れのアイドルに出会うよりもそれより見た目はちょっと劣る隣の同僚にアタックする方を選ぶのは、彼(女)が手が届きそうな存在だからに他ならない。それを、真の審美眼からすると邪道だと言い放って理想を追い続けるのは、
とっても素晴らしい。マル。
Comments
[…] WordPressのソースコードを眺めた […]
少し前wordpressで妹の為にブログを開設した。見た目に満足しなかったようでいじってと頼まれた。そんな調子でテンプレートの中身を見たら副作用だらけのコードでそれぞれの関数が何をやっているのか名前からすると全くわからない始末。LISP信者が多いのも納得がいく。何かいい代替プラットフォームはないのだろうか?