2008年2月8日金曜日

Web Frameworkいろいろ

今日、メインクライアントの会社に行ってきて新しい案件の打ち合わせをしてきました。
今月後半から来月中にかかる仕事がもらえそうです。
新しく立ちあがったばかりの個人事業で受託ですから、仕事の内容に文句は言えません。

言うまでもなく、今、僕が一番自信のある言語はPythonです。
これならかなり複雑なものでもこなす自信があります。

しかしながらPythonを使え案件はそうない。
止める前の会社のサービスがPythonで作った話は前に書きましたが、そのメンテを今もやっていて、そこで少しPythonを使う機会があるだけです。
今回のメインクライアントの案件もPHP+MySQLらしく、PHPも4か5かもまだ判然としないようです。

おりしも、このメインクライアントの案件と同時に仲間内ではじめようとしている、携帯でもうけようのサービスもあります。この二つのプロジェクトをこなしていかないといけないわけですが、初めは携帯のプロジェクトの方はPythonでやろうと思ってました。しかし、同時にPythonの独自フレームワークのプロジェクトと、もうひとつのメインクライアントのPHPを同時になることは私自体経験もなく、ちょっと心配です。いつもの感じだと、いきおい、全部同じ言語で書きたくなる所です。

悩んだあげく、結局、両方ともCakePHPのフレームワークでやることにしました。
まず、PHPもそこそこ書けるという自信はあること。
それと、CakePHP自体、Ruby On Railsにインスパイアされたフレームワークなので、高生産性が期待できること。
PHP4でも5でも動くので、メインクライアントの環境がどっちにころんでも大丈夫なこと。
結局、両方の案件とも、単にDBの情報を検索したり閲覧したり、書き込んだりするオーソドックスな案件であること。
これらが理由です。

結局、最近のWebや携帯の案件って、結構Rails系が得意なDBに対するCRUD操作の案件が殆どなんですよね。こういったプログラミングって、常に必要とされる機能やプログラミング内容は同じで、おもしろくもなんともなく、手早くパッパっと終らせたい繰り返しものなわけです。
で、それなら、その骨格部分は手早くできる既存のフレームワークにまかせちゃえ、ってなわけです。特に今回は二つのプロジェトが平行で走るために結構必要にせまられたりするわけです。全く二つの違う環境を用意したり、頭を切りかえるのって、結構大変ですから。

僕としては、PHPの案件がほとんどなので、8割方はこういったフレームワークで高生産性を稼いておいて、残りのフレームワークにはまらない部分、フレームワークで解決しにくい部分、それを越えたもっと複雑な部分を補完でPythonで書けたらな、と思うわけです。単にDBへのCRUDでは収まらないもっと複雑な分野って必ずあるはずですし、それができることが、単にDBへのCRUDしかできないところとの、個人的には差別化になるわけです。

本当は、何度も書いているのですが、AptanaのJaxerに期待をよせているわけです。
なかなかこれを使わせていただけるプロジェクトがなくて(クライアントの要求だったり、サーバ環境の要請等から)、実現したプロジェクトとしてできてないんですが、これがやれれば最高だと思います。恐らく、今、PHPでやっていることの置き変えが全くできることになるでしょう。これで必要とされるWebサイトの8割は作れると思います。

残りの2割は、はたしてPythonで書くのか、それともJavaScriptでそのまま書けるのかは、これからの時代の進みかたにかかってきます。結構、JavaScriptはPythonができることがほとんどできるようになるまで、進化するのではないかと、期待しております。もちろん、記述力ではJavaScriptはPythonには負けていません。むしろ、個人的には、複雑なロジックを記述するときじは逆にJavaScriptの方が勝っていると感じている程です。まだニッチなニーズまで満すライブラリ等が揃っているのはPythonのほうですけどね。(ま、一番はPerlでしょうけど、僕が全くPerlにふれないことには、何か訳があると思ってくださいな。)

AptanaのJaxerは本当にデザイナとプログラマの分業を完全に確立できるプラットホームになるでしょう。毎日、Aptanaのサイトの英語の情報にかじりついています。
早く実現できればと思います。

0 件のコメント: