日曜日, 3月 09, 2008

【EC開発体験記-言語-】最も初心者向けの言語はJava or PHP? このエントリーを含むはてなブックマーク

私が暮らしのデザインにやってきて早いもので1年。本当にあっというまに過ぎてしまった。ここでは開発中のものを含め5つほどシステムを構築したのだが、ただ、単に作ったというわけでなく、いろいろな研究をやってきたつもりだ。正直、時間的にも体力的にも余裕がなかったので、研究と言えるほどちゃんとやったわけではないが、実験というと立場上まずいので、ここでは研究ということにする。私にとって最も大きな命題は、オープンソースの活用であり、LAMPだけで基幹システムを構築するという点につきる。
 そもそも、Web2.0を積極的にやろうという意気込みで始めたプロジェクトだったので、LAMPの採用は必然的だったのだけど、MySQL、とりわけPHPの経験が乏しく正確に評価できてなかったこともあり、基幹システムを作るにはかなり冒険的だった。なので、更新系や連携部分などの重要な部分だけは、Javaで作られたReflex(これはこれで実験といわれてもしょうがないが)を採用することにした。こうすることで、安全性というか、安心感が高められることになった。なぜJavaだと安心かというと、稼動実績や情報が多いこと、歴史が長く安定していること、それから、最後の最後は自分の経験。どんなにトラブっても自身でFIXできる自信があったのが一番大きい。また、ついでにPHPを勉強して、Javaとの比較もできる。まあ、とりあえずやってみようということで、ハイブリッド形でやることにした。
 プロジェクトでは、サービス志向を取り入れた次のポリシーで開発した。
  1. 画面系はPHP(JavaScript)で作成する。プロバイダに対してはXMLかJSONでアクセスする
  2. プロバイダはReflex(Java)で作成する。JSPなどの画面は一切なし。PDFはReflex iTextで作成する。
  3. バッチはJavaもしくはPHPかシェル
 このJavaとPHPのハイブリッドは効果覿面だった。特に、PHPによる圧倒的な画面生産性の高さは、Strutsに辟易していた私にとって衝撃的であった。画面を作るならPHPであり、Javaで画面を作成してはならないという結論に達した。もう後には戻れないだろう。以前、あるプロジェクトでS2Strutsを使ったことがあるのだが、これと比較すると感覚で1対100ぐらいの差がある。Seasarは最近では、S2Struts以外にもAJAX対応したものがいろいろ出てきているようだが、Java Favorである私であっても、そんなものに興味すらなくなった。第一、モックアップをJavaでやろうなんて発想自体、どうかしている。
 同じ言語を使えば、画面とビジネスロジックがシームレスになる分、何かメリットがあるように思えるが、逆にこれが画面とビジネスロジック開発の分業を阻害した要因になっていると思う。(結局は同じ人が画面もビジネスロジックも両方作ってるんじゃない?だから画面依存のコードになってしまって生産性を下げているんだよ。)どうせなら異なる言語で分かれた方がスッキリするし、そうすれば、PHPを知らないJavaの開発者は画面に触れなくなる。逆もまたいえる。こうなってはじめて並行開発は可能になるものだと思う。

JavaとPHPの両方を経験してみて言えることだが、Javaをどうひいき目に見ても、画面開発には向かない。もちろん、Javaにはよいところもあり、PHPより勝る点は多くある。例えば、先ほども述べたが信頼性・クオリティの点は勝ると思う。機能的な点でも、PDF出力などは、Reflex iTextを使えば、XMLから簡単にPDFを作成できるので、納品書や請求書などの出力に利用している。これはこれで便利な機能だ。それに、私は最も初心者向けの言語はJavaであると思っている。
 これを含め、Javaの本領発揮する場面は後日述べたいと思う。

0 件のコメント:

 
© 2006-2015 Virtual Technology
当サイトではGoogle Analyticsを使ってウェブサイトのトラフィック情報を収集しています。詳しくは、プライバシーポリシーを参照してください。