都道府県穴埋めゲーム

お世話になります。
JAVAの開発経験は現場で1年足らずのものです。
サーブレットとビーンズを使いMVC環境でちょっとしたデータ入出力サービスを納入しました。

以前はPHPで同じようなシステムを作ったことがあるのですが、
PHPの方が簡単にできます。
PHPの時はCAKEというフレームワークを利用していたことや、
PHPを業務で5年ほど使っていたことも理由にあるかと思います。

JAVAに慣れていないといわれればそれまでなのですが、
イマイチJAVAでWEBサービスを作る利点が見つかりません。
JAVAのメリットとは何でしょうか。
WEBサービスを作るには向いてないのでしょうか?

googleの求人を見ると、JAVAとC++エンジニアの求人があり、
PHPはありません。
JAVAやC++をもっと極めたほうが良いのかとも思います。
その辺りも教えて頂ければ幸いです。

A 回答 (6件)

http://oshiete.goo.ne.jp/qa/4365125.html の私の過去の回答ANo.3
http://oshiete.goo.ne.jp/qa/6494932.html の私の過去の回答ANo.5
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/11/15 09:41

動的言語は 記述時に IDE の補助機能が使えませんし、


Javaのようにコンパイルエラーでケアレスミスの 90% を
除去するなどということができません。

その分記述能力が高いのですが、小規模の開発ならともかく
大規模かつ多人数での開発では、静的言語の方が楽です。
コンパイラが常にミスを監視してくれているという安心感が
あります。

スクリプト系の軽量言語が開発の主流になることは
おそらくないと思います。

あの ROR でさえ主流になる気配すらないですから。。。
    • good
    • 0
この回答へのお礼

ありがとうございます。

YahooとかではPHP採用がさかんなのですが、
結局バックではJAVAを使っているのでしょうか。

PHP大規模開発事例としては、ぐるなび、楽天(今はRUBY)、サイボウズもあります。
もちろん、自由に書ける分コード規約をきちんとしないと間違いなく、
言われるとおり大変な事になります。

私がJAVAを使って大規模開発に携わったことが無いから、
今回の質問が出てくるのだと思います。
大規模大変そうですね。

軽量言語でコンパイラがミスを監視してくれるという言語はあるのでしょうか?
以前groovyを使ったのですがJAVAとは思えない書きやすさでした。

お礼日時:2011/11/28 08:29

少人数、短時間でサクっと作るのにはPHPが向いています。



しかし、
大人数で長期開発期間が必要で
しかも開発に携わる人の入替わり画が激しいような大規模開発には
型付けが厳しくStrutsなどの定番フレームワークがあるので
誰が書いてもほぼ同じプログラムになりやすく、
モジュール(クラスやパッケージ)の分割がしやすい
Javaのほうが向いています。

しかしまぁ、PHPでも大規模開発が不可能ではありません。
Javaで短時間開発はむずかしいかもしれませんがね。


それにJavaやC言語のプログラマは活躍できる範囲が広いっというのもあります。
PHPは基本的にWEBの分野だけです。
JavaやC言語ならWEBや組込み系、携帯、非WEBアプリケーションなど
多方面に使われていますし
Javaや特にC言語をわかっているひとは他のプログラミング言語にも
比較的すぐに対応しやすいというのもありますね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/11/15 09:43

まずはこの辺りが参考になるでしょうか?



http://shootout.alioth.debian.org/u32/benchmark. …

このベンチマークからは,
- 性能:Javaの方が良い
- メモリ,コード量:PHPの方が少なくてすむ
という傾向がわかります。あくまで特定条件でのベンチマークですが,hirochanoshieteさんの「PHPの方が簡単」という感想にも合致しており,一般的な傾向と言っても差し支えないと思います。

あとは「簡単」にどういう価値を置くか。「簡単」は必ずしも長所になるとは限りません。

耐障害性,拡張性を考えて設計をちゃんとやる,コードの品質を考えてテスト,デバッグも重視する,というケースでは,本来的にオブジェクト指向(PHPのオブジェクト指向は後付け)で静的型付き言語であり,ツールもそろっているJavaの方が優れているでしょう。

設計なんかやってられない,動くものを早く作ることが重要なんだ,というケースではPHPの方が優れているでしょう。

(いろいろな所で何度も言われていることですが)要は状況に応じて使い分ければいいだけだと思います。
hirochanoshieteさんも,PHPの経験を活かして,「こういう場合はPHPの方が適しています」と顧客/上司に提案してみられてはいかがでしょうか。

参考URL:http://shootout.alioth.debian.org/u32/benchmark. …
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/11/15 09:40

性能の差だと思います。

ネットワーク関連のプログラムの実行性能は一般的に C/C++ > Java > 動的型付け言語 と言われています。

C/C++ > Java のギャップがあるのはJavaからVMを経由しなくてはシステムコールが呼べないため、そのぶんのオーバーヘッドが発生するからです。また、Index out of bound exceptionやcast exceptionなど実行時にしか判定できない例外が多々あるため、その判定もオーバヘッドになります。

Java > 動的型付け言語 のギャップがあるのは、実行時の型チェックが欠かせないからです。動的型付け言語では、データをアクセスするたびにそれが期待したデータ型かをチェックしなくてはなりません。

大量にアクセスがあるサービスでもない限りはこの差は殆ど気づかない程度の差にしかなりませんが、大規模ネットワークシステムだとこれが大きな差になります。

それに強い片付けがされた言語の方がコンパイル時にエラーがわかり、軽微なミスは開発の早い段階で直されるので、その上で動くフレームワークを差し引くと、こちらのほうがずっと開発効率はいいですよね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/11/15 09:39

>>JAVAのメリットとは何でしょうか。


WEBサービスを作るには向いてないのでしょうか?

わたしも、よくメリットはわかりませんが、過去に大量の資金を投入して作成したレガシーシステムがJava製なので、Javaで作るしかないし、現場の方たちもJavaに慣れているってことで、それが問題ない方法という判断なのでは?
そして大規模システムはPHPでは作りにくい気もします。
あと、JavaやC++はコンパイラーで事前のエラーチェックがあることが大規模システムではPHPよりも安心感があるような気もします。

>>googleの求人を見ると、JAVAとC++エンジニアの求人があり、
PHPはありません。

PHPを選択するところは、自前でなんとかやろうというところばかりなんでは?つまり、システムがそれなりの規模で分かりやすく、人を雇うほどではない(し雇う金もない・・・)と考えているのでは?

そしてJavaやC++は難易度が高いし、大規模で人手が必要だし、自前では無理だから、人を雇うことになるのだと推測しています。
    • good
    • 0
この回答へのお礼

ありがとうございます。
レガシーシステムの遺産を使うのは納得行きます。

YahooはPHP技術者を雇用しているのに、googleが雇用しないのはなぜなんだろうと思っています。

お礼日時:2011/11/15 09:38

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


おすすめ情報