なぜJAVAでWEBサービスを作るのか?

このQ&Aのポイント
  • JAVAのメリットとは何か?
  • WEBサービスに向いているのか?
  • JAVAやC++の学習のメリット
回答を見る
  • ベストアンサー

WEBサービスをJAVAで作る理由

お世話になります。 JAVAの開発経験は現場で1年足らずのものです。 サーブレットとビーンズを使いMVC環境でちょっとしたデータ入出力サービスを納入しました。 以前はPHPで同じようなシステムを作ったことがあるのですが、 PHPの方が簡単にできます。 PHPの時はCAKEというフレームワークを利用していたことや、 PHPを業務で5年ほど使っていたことも理由にあるかと思います。 JAVAに慣れていないといわれればそれまでなのですが、 イマイチJAVAでWEBサービスを作る利点が見つかりません。 JAVAのメリットとは何でしょうか。 WEBサービスを作るには向いてないのでしょうか? googleの求人を見ると、JAVAとC++エンジニアの求人があり、 PHPはありません。 JAVAやC++をもっと極めたほうが良いのかとも思います。 その辺りも教えて頂ければ幸いです。

  • Java
  • 回答数6
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.4

http://okwave.jp/qa/q4365125.html の私の過去の回答ANo.3 http://okwave.jp/qa/q6494932.html の私の過去の回答ANo.5

hirochanoshiete
質問者

お礼

ありがとうございます。 これでyahooの件も納得言った気がします。

その他の回答 (5)

回答No.6

動的言語は 記述時に IDE の補助機能が使えませんし、 Javaのようにコンパイルエラーでケアレスミスの 90% を 除去するなどということができません。 その分記述能力が高いのですが、小規模の開発ならともかく 大規模かつ多人数での開発では、静的言語の方が楽です。 コンパイラが常にミスを監視してくれているという安心感が あります。 スクリプト系の軽量言語が開発の主流になることは おそらくないと思います。 あの ROR でさえ主流になる気配すらないですから。。。

hirochanoshiete
質問者

お礼

ありがとうございます。 YahooとかではPHP採用がさかんなのですが、 結局バックではJAVAを使っているのでしょうか。 PHP大規模開発事例としては、ぐるなび、楽天(今はRUBY)、サイボウズもあります。 もちろん、自由に書ける分コード規約をきちんとしないと間違いなく、 言われるとおり大変な事になります。 私がJAVAを使って大規模開発に携わったことが無いから、 今回の質問が出てくるのだと思います。 大規模大変そうですね。 軽量言語でコンパイラがミスを監視してくれるという言語はあるのでしょうか? 以前groovyを使ったのですがJAVAとは思えない書きやすさでした。

回答No.5

少人数、短時間でサクっと作るのにはPHPが向いています。 しかし、 大人数で長期開発期間が必要で しかも開発に携わる人の入替わり画が激しいような大規模開発には 型付けが厳しくStrutsなどの定番フレームワークがあるので 誰が書いてもほぼ同じプログラムになりやすく、 モジュール(クラスやパッケージ)の分割がしやすい Javaのほうが向いています。 しかしまぁ、PHPでも大規模開発が不可能ではありません。 Javaで短時間開発はむずかしいかもしれませんがね。 それにJavaやC言語のプログラマは活躍できる範囲が広いっというのもあります。 PHPは基本的にWEBの分野だけです。 JavaやC言語ならWEBや組込み系、携帯、非WEBアプリケーションなど 多方面に使われていますし Javaや特にC言語をわかっているひとは他のプログラミング言語にも 比較的すぐに対応しやすいというのもありますね。

hirochanoshiete
質問者

お礼

>型付けが厳しくStrutsなどの定番フレームワーク ありがとうございます。 そうですよね、厳しいからこそですよね。 厳しいけど、生産効率があがる言語って何なのでしょうか。

  • aton
  • ベストアンサー率47% (160/334)
回答No.3

まずはこの辺りが参考になるでしょうか? http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=java&lang2=php#faster-programs-chart このベンチマークからは, - 性能:Javaの方が良い - メモリ,コード量:PHPの方が少なくてすむ という傾向がわかります。あくまで特定条件でのベンチマークですが,hirochanoshieteさんの「PHPの方が簡単」という感想にも合致しており,一般的な傾向と言っても差し支えないと思います。 あとは「簡単」にどういう価値を置くか。「簡単」は必ずしも長所になるとは限りません。 耐障害性,拡張性を考えて設計をちゃんとやる,コードの品質を考えてテスト,デバッグも重視する,というケースでは,本来的にオブジェクト指向(PHPのオブジェクト指向は後付け)で静的型付き言語であり,ツールもそろっているJavaの方が優れているでしょう。 設計なんかやってられない,動くものを早く作ることが重要なんだ,というケースではPHPの方が優れているでしょう。 (いろいろな所で何度も言われていることですが)要は状況に応じて使い分ければいいだけだと思います。 hirochanoshieteさんも,PHPの経験を活かして,「こういう場合はPHPの方が適しています」と顧客/上司に提案してみられてはいかがでしょうか。

参考URL:
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=java&lang2=php#faster-programs-chart
hirochanoshiete
質問者

お礼

参考URLまでいただき有り難うございます。

回答No.2

性能の差だと思います。ネットワーク関連のプログラムの実行性能は一般的に C/C++ > Java > 動的型付け言語 と言われています。 C/C++ > Java のギャップがあるのはJavaからVMを経由しなくてはシステムコールが呼べないため、そのぶんのオーバーヘッドが発生するからです。また、Index out of bound exceptionやcast exceptionなど実行時にしか判定できない例外が多々あるため、その判定もオーバヘッドになります。 Java > 動的型付け言語 のギャップがあるのは、実行時の型チェックが欠かせないからです。動的型付け言語では、データをアクセスするたびにそれが期待したデータ型かをチェックしなくてはなりません。 大量にアクセスがあるサービスでもない限りはこの差は殆ど気づかない程度の差にしかなりませんが、大規模ネットワークシステムだとこれが大きな差になります。 それに強い片付けがされた言語の方がコンパイル時にエラーがわかり、軽微なミスは開発の早い段階で直されるので、その上で動くフレームワークを差し引くと、こちらのほうがずっと開発効率はいいですよね。

hirochanoshiete
質問者

お礼

大規模開発時のミスは取り返しがつきませんからね。 ありがとうございます。

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>JAVAのメリットとは何でしょうか。 WEBサービスを作るには向いてないのでしょうか? わたしも、よくメリットはわかりませんが、過去に大量の資金を投入して作成したレガシーシステムがJava製なので、Javaで作るしかないし、現場の方たちもJavaに慣れているってことで、それが問題ない方法という判断なのでは? そして大規模システムはPHPでは作りにくい気もします。 あと、JavaやC++はコンパイラーで事前のエラーチェックがあることが大規模システムではPHPよりも安心感があるような気もします。 >>googleの求人を見ると、JAVAとC++エンジニアの求人があり、 PHPはありません。 PHPを選択するところは、自前でなんとかやろうというところばかりなんでは?つまり、システムがそれなりの規模で分かりやすく、人を雇うほどではない(し雇う金もない・・・)と考えているのでは? そしてJavaやC++は難易度が高いし、大規模で人手が必要だし、自前では無理だから、人を雇うことになるのだと推測しています。

hirochanoshiete
質問者

お礼

ありがとうございます。 レガシーシステムの遺産を使うのは納得行きます。 YahooはPHP技術者を雇用しているのに、googleが雇用しないのはなぜなんだろうと思っています。

関連するQ&A

  • JAVAの利点ってなんですか?

    JAVAの利点ってなんですか? CやC#やとくに.NET Frameworkの概念とは、なにが違うんですか? .NET Frameworkが言語にこだわらないでVisual Basic/C++/C#でも可能(?)と言うのは説明を読んだのですが、用はどのOSでも使えるJAVAの仮想マシンに似ている概念なんですよね? という事はJAVAの利点と同じような利点がCにも加わったって事ですか? ここで少し調べましたが、今ひとつ分かりませんでした。 調べた中で、JAVAの仕事が多いというのは分かったのですが、なぜCやC+とかではなく、JAVAなんでしょうか? JAVAは家電製品のプログラムも可能と聞きました。 その需要が多いって事なんでしょうか? JAVAの利点ってなんですか?

    • ベストアンサー
    • Java
  • JavaでWebサービスの開発

    こんばんは。 今度はじめてJavaでWebサービスを開発・構築することになりました。 実際開発するにあたっては「Struts」「Spring」のような骨組み のようなフレームワークはあるのでしょうか?。 ApacheのAXIS、は聞いたことはありますが、これを使用して開発し、 外部公開するのでしょうか?。 初歩的ですみませんが、よろしくお願いします。

  • Javaによるwebアプリケーション

    Javaによるwebアプリケーション web関係の求人を見るとよくJavaの文字を良く見かけます。 実際にはweb関係(ネットワーク?)の方はJavaでどういうシステムを製作されているのですか? PHPみたいな感じなのでしょうか? よければJavaで製作するメリット・デメリットや、会社での開発環境、知っておいた方がいい言語・知識がありましたら教えていただければと思います。 関係ないですが、C#がある程度できるのですが(FTPツール等)、仕事で使われることはあるのでしょうか?

    • ベストアンサー
    • Java
  • Javaサーブレットのフレームワーク

    JavaサーブレットとmySQLを使用してwebサイトを構築したいのですが HTMLの加工や変更がしやすく処理速度が速いJavaサーブレットのフレームワークって何かありますか

  • JavaのWeb Frameworkについて

    JavaのWeb Frameworkで今人気のあるものは何か教えていただけないでしょうか. できれば,いろいろと違いを述べていただけるとありがたいです. 一応JSPをかじったことがあります. その他にはPHP,Ruby on Railsを勉強しています. そもそもWeb Applicationで今一番使われている言語ってPHPなんでしょうか. しばらくそういうことに関して勉強していないので教えてください.

    • ベストアンサー
    • Java
  • Web開発の業務内容

    Web開発に興味があるものです。 Web開発というとサーブレットとJSPがあるという事で、Javaの勉強の後 サーブレットとJSPについての初心者本を数冊見てみたのですが、内容が かなり重複していました。 実際Web開発の業務内容も本に載っているような事が主で、そんなに広範囲ではないのですか? ちなみにStrutsなどのフレームワークを用いたWeb開発は除きます。 また、実はこのフレームワークがキモだったりするのですか? ご教授願います。

  • Javaのフレームワークについて

    Javaのフレームワークについての質問です。 現在、Webアプリケーションのショッピングサイトのようなサーバー側の規模がちょっと大きくなるものに関しては、スクリプト言語のPHPやRubyの代表的なフレームワークを使って作成しているのですが、Java用のWebアプリケーションのフレームワークもこれから使ってみたいと考えています。 それで、質問なのですが、 (1)現在、Java用のWebアプリケーション作成のフレームワークで世の中で皆さんが一番使われているものってどれになるのでしょうか?私が現在知っている限りでは、Struts、Struts2、JSF(Java Server Faces)、Seasar、Seasar2 くらいがあるのですが、使い分けのコツみたいなものがあれば教えていただきたいのです。(それぞれの、メリット、デメリットのようなもの。) (2)スクリプト言語のフレームワークとJavaのフレームワークの使い分けのようなものも分かれば教えてください。私の認識では、Java用のフレームワークを用いて設計しなければいけないものって、たとえば大手銀行の決済システムとか、かなり規模の大きなものを想定しています。プログラムの動作スピードを上げたい時とか、セキュリティー関係を厳重に行い時などを想定しています。Javaのフレームワークを使うメリットなども分かれば教えてください。 よろしくお願い致します。

  • JAVAとPHPの処理速度

    JAVAとPHPの処理速度は5年前なら明らかにJAVAだろうが 今のPHP(CodeIgniterのフレームワーク)の処理速度は JAVAの処理速度にどのくらい近づいているのだろうか? PHP(CodeIgniterのフレームワーク)はJAVAと対して変わらない処理速度までなっているのでしょうか?

    • ベストアンサー
    • PHP
  • JAVAの用いられ方

     現在、システムエンジニアになるべくJAVAを勉強中のものです。Cだと使える人がたくさんいるのでなかなか雇ってもらえなく、JAVAは少ないから雇ってもらえやすいと聞いたもので。   そこで、質問です。 実際、JAVAはどのような用いられ方で重宝されているのですか。 WEBサイトを作るような職種でしか、JAVAはあまり活躍しないのではないかと不安になってきました。

  • はじめてのPHP

    こんばんはっ! 私はここ数年Javaをやってきましたが、 最近PHPに興味があり、挑戦しようと思っています。 そこでPHPを始める前に、下記について知りたいです。 ・PHPのバージョンについて 今主流なのは、5でしょうか。 また、5はオブジェクト指向になったという話を聞いたことがありますが、Java風にコーディングできるのでしょうか。 ・IDEについて PHPにはJavaでいうEclipseみたいなものはありますか? また、Eclipseでも開発可能ですか? ・Zend Frameworkについて これはJavaでいうStrutsみたいなフレームワークでしょうか? また、PHPにはMVCのような概念はありますか。 ・PHPの動作環境 Apacheが動く環境なら、どこでも動きますか? また、Javaのように一度書けばどこでも動きますか? ・PHPの書籍 おすすめの本はありますか。 どうぞ、よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう