
お世話になります。
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で質問しましょう!
似たような質問が見つかりました
- Java JavaでWebページ作成 7 2023/07/21 21:09
- IT・エンジニアリング プログラマの仕事内容 4 2022/08/13 00:34
- Java javaでパソコンの内臓カメラや内臓マイクの映像や音をリアルタイムで映し出した 1 2022/07/09 14:02
- IT・エンジニアリング c言語とjavaの需要について 3 2022/06/23 22:59
- IT・エンジニアリング プログラマーです 未経験から一年半汎用系(.NET、C#)システムを作っていました。自社なので1から 3 2023/03/16 20:13
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- Ruby プログラミング講師はまだ需要ありますでしょうか? 1 2022/11/07 19:43
- Java EclipseとVisual StudioをPC1台にインストールしただけではPCは重くならない? 3 2022/12/08 15:35
- IT・エンジニアリング FORTRAN、COBOL、C、Java、C++とか誰が作ったのですか?言語習い使いまた出て、キリが 4 2023/05/06 23:11
- JavaScript Python Java,Springフレームワークの習得 1 2023/08/02 15:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseソース開発画面の行番号...
-
WebLogicによるデバッグについて。
-
JavaかJavaScriptかVBScriptか
-
TOMCATとANDROIDSTUDIOの違い
-
この便利な時代に開発環境すら...
-
オブジェクト指向について
-
webアプリケーション開発でおす...
-
WEBサービスをJAVAで作る理由
-
JAVAで開発するシステムの...
-
PowerBuilderの知識が必要です。
-
「C#ができればJavaもできる」...
-
ファイルアップロード時の文字...
-
PL/SQLを使った開発について質...
-
vba クリップボードクリアにつ...
-
使用しているJUnitのバージョン...
-
IISワーカープロセスが原因でCP...
-
gitでバージョン指定してダウン...
-
おすすめのJava関連の書籍は?
-
struts2環境構築で不具合が出て...
-
MSFormsとは何ですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseソース開発画面の行番号...
-
PL/SQLを使った開発について質...
-
オブジェクト指向について
-
フリーソフトの作成言語
-
JAVAを使って管理システムを構...
-
「C#ができればJavaもできる」...
-
この便利な時代に開発環境すら...
-
今でも、TomcatとApacheの連結...
-
JavaMailを使う前のTomcatの設定
-
Javaでバッチ処理
-
Mac、Javaのライブラリ追加場所...
-
Javaのフレームワークについて
-
コマンドボタンの文字が消える!
-
AndroidとJavaの違いについて
-
How to import HorizontalGridV...
-
eclipseでtomcatを使うには
-
プログラミング開発経験とは?
-
PowerBuilderの知識が必要です。
-
JAVAで開発するシステムの...
-
OS作りについて
おすすめ情報