お世話になります。
JAVAの開発経験は現場で1年足らずのものです。
サーブレットとビーンズを使いMVC環境でちょっとしたデータ入出力サービスを納入しました。
以前はPHPで同じようなシステムを作ったことがあるのですが、
PHPの方が簡単にできます。
PHPの時はCAKEというフレームワークを利用していたことや、
PHPを業務で5年ほど使っていたことも理由にあるかと思います。
JAVAに慣れていないといわれればそれまでなのですが、
イマイチJAVAでWEBサービスを作る利点が見つかりません。
JAVAのメリットとは何でしょうか。
WEBサービスを作るには向いてないのでしょうか?
googleの求人を見ると、JAVAとC++エンジニアの求人があり、
PHPはありません。
JAVAやC++をもっと極めたほうが良いのかとも思います。
その辺りも教えて頂ければ幸いです。
No.4ベストアンサー
- 回答日時:
http://oshiete.goo.ne.jp/qa/6494932.html の私の過去の回答ANo.5
No.6
- 回答日時:
動的言語は 記述時に IDE の補助機能が使えませんし、
Javaのようにコンパイルエラーでケアレスミスの 90% を
除去するなどということができません。
その分記述能力が高いのですが、小規模の開発ならともかく
大規模かつ多人数での開発では、静的言語の方が楽です。
コンパイラが常にミスを監視してくれているという安心感が
あります。
スクリプト系の軽量言語が開発の主流になることは
おそらくないと思います。
あの ROR でさえ主流になる気配すらないですから。。。
ありがとうございます。
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言語をわかっているひとは他のプログラミング言語にも
比較的すぐに対応しやすいというのもありますね。
>型付けが厳しくStrutsなどの定番フレームワーク
ありがとうございます。
そうですよね、厳しいからこそですよね。
厳しいけど、生産効率があがる言語って何なのでしょうか。
No.3
- 回答日時:
まずはこの辺りが参考になるでしょうか?
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. …
No.2
- 回答日時:
性能の差だと思います。
ネットワーク関連のプログラムの実行性能は一般的に C/C++ > Java > 動的型付け言語 と言われています。C/C++ > Java のギャップがあるのはJavaからVMを経由しなくてはシステムコールが呼べないため、そのぶんのオーバーヘッドが発生するからです。また、Index out of bound exceptionやcast exceptionなど実行時にしか判定できない例外が多々あるため、その判定もオーバヘッドになります。
Java > 動的型付け言語 のギャップがあるのは、実行時の型チェックが欠かせないからです。動的型付け言語では、データをアクセスするたびにそれが期待したデータ型かをチェックしなくてはなりません。
大量にアクセスがあるサービスでもない限りはこの差は殆ど気づかない程度の差にしかなりませんが、大規模ネットワークシステムだとこれが大きな差になります。
それに強い片付けがされた言語の方がコンパイル時にエラーがわかり、軽微なミスは開発の早い段階で直されるので、その上で動くフレームワークを差し引くと、こちらのほうがずっと開発効率はいいですよね。
No.1
- 回答日時:
>>JAVAのメリットとは何でしょうか。
WEBサービスを作るには向いてないのでしょうか?
わたしも、よくメリットはわかりませんが、過去に大量の資金を投入して作成したレガシーシステムがJava製なので、Javaで作るしかないし、現場の方たちもJavaに慣れているってことで、それが問題ない方法という判断なのでは?
そして大規模システムはPHPでは作りにくい気もします。
あと、JavaやC++はコンパイラーで事前のエラーチェックがあることが大規模システムではPHPよりも安心感があるような気もします。
>>googleの求人を見ると、JAVAとC++エンジニアの求人があり、
PHPはありません。
PHPを選択するところは、自前でなんとかやろうというところばかりなんでは?つまり、システムがそれなりの規模で分かりやすく、人を雇うほどではない(し雇う金もない・・・)と考えているのでは?
そしてJavaやC++は難易度が高いし、大規模で人手が必要だし、自前では無理だから、人を雇うことになるのだと推測しています。
ありがとうございます。
レガシーシステムの遺産を使うのは納得行きます。
YahooはPHP技術者を雇用しているのに、googleが雇用しないのはなぜなんだろうと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASP.NETでの実行環境
-
C言語の練習
-
Jakartaの人ってどうやって儲け...
-
Javaでゲームコントローラーを...
-
WebLogicによるデバッグについて。
-
Linux上でのゲーム開発環境につ...
-
iアプリ作ってくれる会社、個人...
-
JavaMailを使う前のTomcatの設定
-
オブジェクト指向について
-
Javaの開発環境について、Eclip...
-
eclipseでtomcatを使うには
-
JAVAを使って管理システムを構...
-
Linux上でEclipseを使用してC++...
-
vba クリップボードクリアにつ...
-
JSPファイルで生じるエラーをど...
-
IISワーカープロセスが原因でCP...
-
EclipseでJavaコンパイラのバー...
-
CrystalReportsのバージョン確...
-
unzip32.dllの利用について(64b...
-
java と javax の違いは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseソース開発画面の行番号...
-
PL/SQLを使った開発について質...
-
オブジェクト指向について
-
この便利な時代に開発環境すら...
-
高度なPS3ソフトの作る上で...
-
Tomcatのバージョン違い
-
JAVAで開発するシステムの...
-
JavaMailを使う前のTomcatの設定
-
「C#ができればJavaもできる」...
-
デザインパターンは必要か
-
MacでJavaを…
-
Webアプリケーションを開発する...
-
Mac、Javaのライブラリ追加場所...
-
PowerBuilderの知識が必要です。
-
実務の参考書で
-
サーバサイドJavaの「べか...
-
OS作りについて
-
javaで社内システム
-
iアプリ作ってくれる会社、個人...
-
いきなりMojaviを導入してみた...
おすすめ情報