プロが教える店舗&オフィスのセキュリティ対策術

phpとJava(Servlet等)のメリット、デメリットを模索しています。
調べているとServletは

1.phpなど他のサーバサイド言語と比較して高速で動く代わりにメモリの消費量が大きい
(※ だからレンタルサーバの多くはServletをサポートしていない)
2.Servletの方が堅牢なWebアプリケーションを作成できる。

と謳っているサイトが数多くありました。

しかし、下記サイトの実験結果ではphpの方が早く動くという結果が出ているようです。(ちょっと古いですが‥
http://www.gitc.pref.nagano.lg.jp/joho/kaisetsu/ …

上記サイトの実験結果はさておき、一般的にJavaの方が高速に動作すると本当に言えるのでしょうか?
また、「堅牢な」とは何を以ってServletのほうが堅牢と言えるのでしょうか?

よろしくお願いします。

A 回答 (3件)

こんちゃ


プロの端くれの20年ものの出がらしでございます。
まあ、正直、その辺は状況によるんじゃないかな?
と思います。
似たようなことを先日後輩にも聞かれましたが、
以外に個々人で認識に相違があるので、逆にそういう勉強会とかには
いきました?
こういう場で聞くよりも、プロ同士の意見交換はいい意味でも刺激
になりますから、一度見てみるといいと思いますよ。
私の答えは、そうともいえるし、違うともいえるですな。
最善と最適が違うようにどっちが優れているではなく、
どっちがこの案件で有用かを自分で考える。
このプロセスが大切なんですよ。矛盾してるけど。
(こないだ聞かれたときにこう答えればよかったなぁ)
答えになっていないので、不満に感じるかも知れませんが、
考えて見てくださいな。
がんばって
    • good
    • 0

Javaは、画面にSwingやjava appletを使用していれば表示されるのが遅いです。


PHPは、HTMLの中にPHPのコードを埋め込んでいるだけです。
JavaにもJSPを使用するば同じことができます。
フレームワークを使用するときは、JSPとは、タグの記述が違います。
Javaの場合は、商用で使用するときは、データベースにOracleを使用する案件しか聞いたことがないです。
一方、PHPの方は、MySQLが多いと思います。
レンタルサーバでデータベースにOracleを使用しているところは、
私は、知りません。
堅牢なアプリケーションのシステムということですが、
JavaはMVCモデルという作り方をしているのでそういうことだと思います。
でも、PHPでもそういう考え方はあります。
OracleのほうがMySQLよりCPUやメモリ消費が多いと思います。
Javaは、社内で使用する業務システム。
PHPは、一般向けに公開するシステムという位置づけなのではないかと思います。
Javaは、classファイルを作成してwarやearファイルにしてアプリケーションサーバーにデプロイしないと実行できません。
その分手間がかかります。
一方、PHPは、テキストエディタなどで編集すれば、ブラウザにアクセスして実行してすぐに確かめることができる手軽さがメリットだと思います。
データベースやアプリケーションサーバーに何を使用するのかや
データベースのコネクションの部分はどんな技術を使用するのかは、いろいろ組み合わせがあると思います。
また、フレームワークを使用するのかも考慮にいれると思います。
それらの組み合わせによってパフォーマンスが変わると思います。
実験結果の内容は、古いバージョンの結果です。
新しいバージョンでは、改良が加えられて速くなっているはずです。
私は、以前は参照系はMySQL,更新系はPostgreSQLという考え方でしたが、PostgreSQLのバージョンが上がって速くなっているという記事をどこかで読んだ記憶があります。
今どんな技術が使われていて、どちらの方が需要が多いかは、派遣の求人内容をみればわかると思います。
Javaの方が勉強することが多いような気がします。

勉強がんばってください。
    • good
    • 0

Javaで仕事してます。



サイトのソースを見ましたが、Javaのソースはあんまりきれいでは無かったです。
そのせいで遅いかも。
あとはJavaのバージョンがあがって最適化が行われて、いくらか早くなっています。

ちなみに新しい結果だとこんな感じです
http://www.thinkit.co.jp/cert/compare/2/4/2.htm

堅牢さですが、
Javaは結構しっかり書かないと動きませんが、PHPはちょっと適当なところがあっても動いたりします。
そういった意味では堅牢だと思います。
しかし、どの言語を使ってもきっちり書かなければセキュリティーホールの原因になります。

でも、理解して使っている人にとってはどちらも対して差は無いでしょう。

あとは好みと注文しだいでしょうか。

ちなみにServletが堅牢と言うのは少し違和感があります。

Servlet + JSP (JSPタグ利用) でHTMLの値表示を堅牢に。
Javaの言語使用で間違った型に間違った計算がされない堅牢さ。
DBのSQL問い合わせで?とパラメータを指定してクエリを投げることで、SQLインジェクションが起きない堅牢さ。

等でしょうか。Servletだけでは正直、全然堅牢じゃないです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!