PHPとJavaの比較。(再)


プログラム初心者に説明する上で、次の項目について、それぞれ、◎、○、△、×をつけてください。

・習得の難易度
・更新性
・制作工数
・パフォーマンス
・汎用性
・資料(参考書やサイト)の多さ
・ユーザーの多さ
・(公式)マニュアルの充実度
・拡張性
・将来性
・仕事の量

他に比較できるような要素があれば追加して教えてください。あまり厳密に差をつけなくても結構です。私の感覚では、Javaの習得は×かなと思いますが、それ以外は×はなさそうな気がします。

※同じ内容の質問をいわしでもしていました。
http://q.hatena.ne.jp/1161698005

回答の条件
  • 1人3回まで
  • 登録:2006/11/10 03:25:30
  • 終了:2006/11/17 03:30:02

回答(3件)

id:takashi-oti No.1

takashi-oti回答回数8ベストアンサー獲得回数12006/11/10 10:14:07

ポイント27pt

各項目を以下の表のように評価してみました。

各項目PHPJava
習得の難易度
更新性
製作工数×
パフォーマンス
汎用性
資料
ユーザの多さ
マニュアルの充実度
拡張性
将来性
仕事の量×

といったところでしょうか。以下は評価の詳細です。

まず、習得の難易度ですが、どちらもプログミングの初心者にはとっつきにくいかもしれません。特にJavaはオブジェクト指向の概念を理解するところから始めないといけませんし。あとは、Webプログラミングに限定して考えるならば、PHPはApacheというサーバプログラムを導入すれば外部に公開することも容易です。レンタルサーバを利用するならば、この作業すら省く事ができます(レンタルサーバがPHPに対応していればですが)。しかし、JavaでWebプログラミングを行うとすると、Tomcatというサーブレット(Javaをサーバで動かしてWebで公開するためのソフト)を各自で導入する必要がありますし、レンタルサーバでは、インストールすることが出来ない場合があります。コンパイラのインストールの必要性もありますし…。

このように比較すると、PHPのほうが入り易いかなぁという感じはします。

次に更新性について。更新性というのが、具体的にどういうことかわからなかったので、プログラムに機能を追加していくという点においての更新と考えると、Javaはオブジェクト指向なので、新しく機能を追加するといった作業は大変得意なプログラムだと感じます。

製作工数に関しては、本格的にプログラムを作っていくとなると、Javaはシステムが大規模になればなるほど、クラス(プログラムの単位と考えれば良いでしょうか)が増えてしまいます。そのため、単純なプログラミング作業のほかに、プログラムが正確に動いているかなどのテストの手間が大変なんものとなります。

パフォーマンスですが、断然PHPのほうが応答速度が速いです。Javaはバーチャルマシン(JavaVM)というOSを選ばないソフトの上で動いてるのですが、それが原因で動作がどうも遅いようです。

汎用性に関しては、Javaはプラットフォームを選びませんし、JavaVMさえあればどこでも動くという利点があります。PHPはどうしてもWebアプリのための言語ってイメージが私にはあるので^^;

資料に関してはどちらも多いですが、PHPよりはJavaの本が多い気はします。サイトの多さでは、Webプログラミングに強いPHPの方が多いのかもしれませんが。

ユーザの多さは、JavaもPHPも大変多い事は容易に想像つくと思いますが、プロのプログラマでなくてもPHPを利用してプログラムを書いている人は多いという独断と偏見でPHPに軍配があがってます。

拡張性ですが、Javaにはライブラリが豊富にあります。元々あるライブラリのほかに、ユーザが作ったライブラリなんかもあるので、そういうものを利用すれば拡張は容易です。

将来性という点に関して。PHPは現在、Webアプリの主流になりつつあると思います。が、Rubyという強力なライバルが出てきたのも事実です。Javaに関して言えば、Webプログラムとしての将来性は微妙かな…と。

仕事の量ですが、プログラムを書くってことは仕事量は多いですよね。結局のところ。ただ、Javaを×にした理由は、コーディング以外の仕事(プログラミングする上での計画書・設計図の記述)が大変な量あると思います。


長々と書きましたが、こんなところでいかがでしょうか。

id:iiiiiiiii

とてもとても丁寧な解説ありがとうございます。

大変ためになります。

2006/11/10 10:21:33
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402006/11/10 12:34:56

ポイント27pt

1の人と被るところもありますが、ちょっと違う視点の部分もあるので。

基本的な部分として Web系では PHP の案件の方が多いと思います。使用できる環境の差もありますし。

ただ、Java は業務系アプリの需要が高いですし、GUI も含みます。商用アプリケーションサーバーはレプリケーションなどの高度な機能を含むなど、PHP とは方向性の違いがはっきりでています。


,項目,PHP,Java

,習得の難易度,○,△

,更新性,◎,×

,制作工数,○,△

,パフォーマンス,△,○

,汎用性,△,◎

,資料(参考書やサイト)の多さ,○,◎

,ユーザーの多さ,◎,◎

,(公式)マニュアルの充実度,○,◎

,拡張性,△,◎

,将来性,○,◎

,仕事の量,◎,◎


取得の難易度:手っ取り早く始めるならやはり PHP でしょうね。

環境さえあれば HTML+α で済むのは大きいです。

逆にきちんとオブジェクト指向などにのっとって設計していく分には両者とも同等の手間がかかります。

Java はとっつきにくいですが、Eclipse 等のIDEが充実しているので、コード補完に頼っていてもなんとなくできる環境が出来てきています。

http://eclipsewiki.net/eclipse/

更新性:サイトの変更時の手順という意味に取ったのですが、PHP はファイルを書き換えるだけ。Java はコンパイル -< デプロイという手間が発生する分だけちょっと手間かなと。

製作工数:正直フレームワークに則って作ればどっちも大差ないような気もしますが、PHP は手を抜きやすいので省こうと思えば省けます。Java は構文が厳格なので手を抜きにくいです。逆にそこが管理上のメリットでもありますが。

パフォーマンス:標準ではPHPはインタープリタ型なので正直遅いと思います。最近はアクセラレーターの類も出ているようですが。

Java は Tomcat は遅いですけど rejin や商用アプリケーションサーバーはかなり早いです。ただしそれ相応のメモリは必要ですが。

http://www.stackasterisk.jp/tech/java/resin01_01.jsp

汎用性:PHPは最近は CLI も使える用になったとは言えあくまで基本は Web 用言語です。これは悪い事ではなく汎用性を捨てる事で Web との親和性を高めていると考えます。

Java は GUI を含むのはもちろん、組み込み用途もありますし極端な例ですが JavaOS まで作れます。

そもそもの方向性が違うので当然の結果にはなります。

資料:正直どっちも十分に書籍の量はあります。Java の方はサードパーティーのライブラリも必ずといっていいほど JavaDoc が充実しているので一歩リードといった程度の差です。ただ、PHP の本は初心者向けが多いようには思います。

ユーザーの多さ:両方とも十分多いです。

拡張性:PHP はまだオブジェクト指向のサポートが弱いですね。Java は自分での拡張ももちろんですが Jakarta プロジェクトに代表されるようにサードパーティの優れたライブラリが多いです。

将来性:両方とも十分にあります。PHP は言語として発展途上ですのでこれからも改善されていく事でしょう。Zend の後ろ盾が無くなれば話は別ですが。

Java は言語としては成熟していますが、今のところポジションが確立しているので当面置き換えられることは無いでしょう。

仕事の量:求人の数といった風に受け取ったのですが、どちらも多いです。ただし、PHP は Web系、Java は業務系というように仕事内容は異なるので一概にはどちらがいいとは言えませんが。

id:dev_zer0 No.3

dev_zer0回答回数332ベストアンサー獲得回数252006/11/10 13:21:54

ポイント26pt

個人的な好みとしてJavaびいきであることを明言しておきます


・習得の難易度 Java:◎ PHP:○

  個人的にはプログラム初心者においては、オブジェクト指向型の方が直感的に理解しやすいと思います。

  従来のプログラム手法である手続き型に慣れてしまった人はPHPの方がとっつきやすいです。


・更新性 Java:○ PHP:△

  PHPの方がバージョンUPの頻度が速いですが、致命的なセキュリティーホールも多いです

  PHPは発展途上の言語であり、まだ安定していません。

  Javaはようやく枯れかかってきた感じです。


・制作工数 Java:○ PHP:○

  全工数に対するコーディングの工数はそれほど高くありません

  また、大規模になるほど制作に時間がかかることも変わりません

  どちらかというとJavaは大規模の場合に有利、PHPは小規模で有利だと思われます


・パフォーマンス Java:△ PHP:△

  Javaは中間コードをVMで実行、PHPはスクリプトなのでパフォーマンスはどっちもどっちです


・汎用性 Java:◎ PHP:△

  どちらの言語もプラットフォームを問いませんが、

  PHPはCGIに特化した言語であり、それ以外の用途はちょっと思いつきません


・資料(参考書やサイト)の多さ Java:○ PHP:◎

  Googleによると、Javaを含むキーワードは294,000、PHPを含むキーワードは8,210,000で、圧倒的です


・ユーザーの多さ Java:○ PHP:◎

  数年前はJavaの方が多かった気がしますが、今はPHPの方がユーザは多いみたいですね


・(公式)マニュアルの充実度 Java:◎ PHP:○

  公式に限っていえば一応SunのJavaマニュアルは充実しています

  PHPの方は有志が頑張っていますが、タイムラグが生じています


・拡張性 Java:○ PHP:○

  きちんと設計をしていれば、どちらも拡張しやすいはずです

  ただ、PHPの場合、適当に書いてしまって後で読めなくなることが多いですが、

  それは私がサボっているだけであって、言語が悪いわけではないと信じています。


・将来性 Java:○ PHP:△

  少なくとも、Javaは10年使われ続けていました、これからも使われ続ける可能性は高いです

  一方、PHPは歴史が浅く、PHPよりも使いやすい言語が出てきたときに一気に廃れる可能性があります


・仕事の量 Java:○ PHP:○

  大規模のサーバサイド開発はJava、小規模のWeb系はPHPと分業されてるようです

  個人的にはJavaの方がつぶしが利くと思ってます。


追加

・開発環境 Java:◎ PHP:○

  開発環境はJavaはEclipse、PHPでもプラグインとしてEclipseでPHPの開発ができますが、多少面倒です


・デバッグのしやすさ Java:◎ PHP:△

  PHPに限らず、スクリプト言語はコンパイルがない為、

  くだらない文法エラーもいちいち実行しないと検出できません。

  プログラムが大規模になるほどくだらないミスを見つける時間に費やされます

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません