2006年07月08日

隣の芝生はよく見える?

自分の科学技術に関する原体験(こういう言葉の使い方って正しいんでしょうか?)の一つには、Sony のウォークマンに代表される「持ちあるき携帯音楽プレーヤー」があります。1980年代、電気屋さんにカタログをもらいに行くたびに、“これまでになかった新機能”のついたプレーヤー・レコーダーが現れ、子どもながらにわくわく感を味わっていました。「太陽電池ウォークマン」や、「防水ウォークマン」、「ダブルデッキウォークマン」、「カセットケースより小さいプレーヤー」(TOSHIBAだったかな?)などなど、変り種の音楽プレーヤーがまじめに発売されていたんですよね。

PHPフレームワークに関する現在の様子は、あの頃に少し似ている気がします。

で大小さまざまなプロジェクトを見ていると、やはり、隣の芝生が気になるというか、「このフレームワークは、**と比べるとどこがいいの?どこが違うの」という話になると思います。

今回は、「この***プロジェクトは、CakePHPと比べてどうなの?」というテーマで語られているものを少しピックアップしてみました。そこで分かることは、大工道具と同じで、いつでもこれがいい!というような次元の話ではなくて、自分の置かれた環境の中で最善のものが何かを見分けることが必要なのだな、ということでした。ですから、CakePHP を応援しているからといって、このブログが他のフレームワークを否定しているわけではありません。

それでは、「他のプロジェクト・コミュニティは CakePHP をどう思っているのか(語ったか)」
(ちなみに、CakePHP はトリッキーなことをして、PHP4/PHP5の両方で動くようにしているフレームワークです。)
★ほかにもフレームワークはいろいろありますが、今回は、“CakePHPについて言及・または比較しているフレームワーク”という観点で選択しました。

(1) symfony (シンフォニー) …… PHP5 + propel + creole という環境です。

http://www.symfony-project.com/forum/index.php/m/3476/?srch=cake#msg_3476
Adopting symfony's framework as a novice php programmer?

Symfony はとっかかりが難しいかも?というユーザ。あとは、実際に動いている有名なソフト(askeet!)がある、という実績をあげています。
で、その askeet!でも vs 論争があったりして、

http://www.askeet.com/question/how-would-you-say-symfony-compares-to-cakephp-and-qcodo
How would you say Symfony compares to CakePHP and qcodo?

こちらでもみんなで盛り上がっています。基本的に、PHP5だけをサポートしてくれればいい、という人は symfony を推しています。

(2) PHP on TRAX(トラックス) …… RoR(Ruby on Rails)を忠実に(?)PHP で再現しようとしているプロジェクト。こちらもPHP5専用。

http://forum.phpontrax.com/viewtopic.php?t=9
Trax Requirements

共有サーバだって、PHP5が使えるところはいろいろあるよ、という意見。PHP4が必要なら、CakePHPを使うかもね、と言う人がいます。

(3)PRADO …… Zend PHP5 コンテストで1位になり、有名になりました。ASP.NET と Delphi に影響を受けた、イベント・ドリブン型を目指しています。(こういうプロジェクトには、IDEがあればいいと思うんですよね〜。)
http://www.pradosoft.com/forum/index.php/topic,2272.0.html(URLにカンマが入っています。)
Topic: Borrowing from Rails (Active Record, etc)?

RoR とは出発点が違うので真似はしなくていいんじゃないの、という意見が飛び交ったのち、開発メンバーが、いや、Active Record をPRADOにも取り入れたいんだよね、と発言しています。

(4) Qcodo …… NASA でも使用(?)という触れ込みの PHP5 フレームワーク。久しぶりにサイトにいったところ、ずいぶん .ppt が増えています。
http://www.qcodo.com/forums/topic.php/253/1/0/
Qcodo vs Symfony?

RoR 流は、“動的に”テーブルデータを取ってきますが、Qcodo は、DAOクラスをファイルの形で生成して利用します。どっちがいいかと言われたってそれは分からないよ〜、という発言。

(5) Code Igniter …… CakePHP にいちばん近いところにある?後発フレームワーク。PHP4/PHP5コンパチ。Cakeより軽量。
CodeIgniter vs. CakePHP
http://www.codeigniter.com/forums/viewthread/750/

このスレッドを見ても内容の違いはよく分かりませんでした。マーケティングの違いで、こちらのほうが分かりすい、直感的?という CI ユーザの声。
ちょっと使ってみて、つっこんで調査したほうがよいかも。

(6)Achievo …… RoR のはるか昔から(2000年)存在するPHP環境。
http://www.achievo.org/forum/viewtopic.php?t=277&highlight=cake
What is the main different?

同じことを繰り返さない、最小限のコード、という点では同じだよ、という作者の意見。

(7)Studs MVC Framework …… J2EE を目指すPHPフレームワーク
http://www.mojavelinux.com/projects/studs/

CakePHP も php.mvc も試したけど、オリジナルのJ2EEにいちばん似ているから気に入りました〜。という声が掲載されています。

(8)Web application Component Toolkit (WACT) continuous refactoring と unit testing、そしてパターンに注目。PHP4 用とPHP5用を別々に作成?
 マーケティングとドキュメントがもう少しよければ成功する(した)かも。
一応、CakePHP のことを表で言及していたようなので。

http://www.phpwact.org/php/mvc_frameworks?s=CakePHP

日本での様子は、と考えると、やはりPHP4の環境も見捨てることはできないと思います。共有サーバではまだまだPHP4が多くあります。OSSプロジェクトを始める場合にも、PHP4/PHP5 の両方で動くように書けるのであれば、そう書いておいたほうがよいかもしれません。特に RoR 流儀にのっとって書けば、“言語の新機能(=PHP5特有の機能)に頼らない”プログラミングもできるわけなので。

そうなると現時点での私の判断では CakePHP がよい、ということになったわけです。
しかし、「自分のところでは専用サーバしか使わないし、コードを開発・管理するのはうちだし、PHP4 のサーバを使っている人にソースを渡すなんて絶対ないです」という場合には、symfony も良い選択でしょう。

※追記
http://phppro.jp/news/19
「2006年6月の世界のPHP使用状況調査」でも、
「現在もなお、PHP4.3およびPHP4.4が、広く使用されていることがわかります。国毎の調査では、PHPはヨーロッパで広く使用されており、日本では平均的に使用されていると示されています」とありました。


posted by SDozono at 17:30| ロサンゼルス ☀| Comment(0) | TrackBack(1) | PHP Framework | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。