web-dev-qa-db-ja.com

JavaEE vs PHP-なぜ多くの人がJavaのほうが良いと思うのですか?

Webプロジェクトで使用するテクノロジーを評価する必要があります。チームは4人の開発者で構成され、プロジェクトの期間は1年です。

私はphpに慣れていますが、クライアントはJava EE。

私は常にJavaおよびそのフレームワークと同じ認識を持っています:

  • 単純なことを行うために、あまりにも多くのxmlとクラス。 codeigniterでは、3つのファイル(モデル、ビュー、コントローラー)をhibernate + spring + JSFで使用する必要があります。10個を超えるファイルが必要です!!!
  • サーバーの乱用。 JavaScriptコードは重要性を失い、今日では良くありません。もちろん、JavaScriptコードを追加することもできますが、「Java Webの人」はクライアントではなくサーバーでの作業を好むようです。
  • 見栄えのしないアプリケーション。 Richfacesは数年前のWebのようです。
  • Java liferay、alfrescoのようなアプリケーションを見ると、重くて非常にゆっくりと見えます。

多くの人や大企業がWebにJava)を使い続けているので、少し混乱する可能性があると思います。統合に関するのはなぜですか?

一方、JavaはPHPよりも高速ですが、Javaのサーバーは大量のメモリを必要とします(より高価です)。多くのリクエストがあるサーバーでは、プロセスごとの時間が長いphpのような言語で改善できますサーバーがメモリのために折りたたまれないため、プロセスごとのメモリが少なくなります。メモリが原因でJavaサーバーが折りたたまれ、実際の運用環境での応答時間の平均がphpよりも大きくなる場合があります。

私はCodeigniterに本当に満足しています。なぜ多くの人がJavaの方が良いと思いますか?

前もって感謝します、

アルベルト

24
alasarr

よく私はCodeIgniterを使用していないので、私の比較はすでに不完全です。

質問1は、なぜJavaを要求するのでしょうか。多くの場合、大企業はJavaまたは.Net環境を生産的なシステムに提供しているだけなので、生産的に実行する人がいない可能性がありますPHPアプリケーション。複雑ではありませんが保守担当者は、実行しているものを定義します。

多くの人は言語とその機能について話しますが、最初のビジネスユースケースについて話し合わなければならない場合、フレームワークはそれを数えるためにその時間を節約できません。ほとんどのプログラミング言語はどういうわけか問題を解決します。

JavaはRichFacesやJSFだけではありません。たくさんの選択肢があります。たくさん。利点ではありません。

しばしば忘れられるものは、ツールのサポートです。 Javaには、メモリ、ガベージコレクタ、スレッドなどの機能を詳細に分析できるJVMが付属しています。Javaのプロファイラにより、ほとんどすべてのメモリリークを数時間以内に特定します。ほとんどのJVM監視はリアルタイムで動作します(オーバーヘッドは約5%)。ツールについて話す:リファクタリングのサポートは、PHP IDEが登場することをはるかに超えていますと。

JavaをPHPと比較すると、象や馬のように見えます。(okのphpのロゴは象の完全な比較です。 。)。馬は角を曲がるのに柔軟性がありますが、あまり持ち運びできないかもしれません。言語の観点からは、JavaはPHPよりもさらに進んでいます。名前空間、クラス、型安全性。これらは、PHPで多少入手可能ですが、まだかなり新しいものです。

Springのようなフレームワークを使用すると、アプリケーションをアーキテクチャレベルで活用でき、単なるライブラリではありません。

私は最大のJava= EEファンではないので、不満はありません。

あなたのための単純なアプローチは、Tomcat + Spring + SpringMVCとGUIのテンプレートエンジンです。より高速なクライアントの動作をターゲットとする場合は、GWT(Vaadin)もあります(まだまだあります)。

Javaにも軽量なアプローチがあります。Javaの標準にはより脂肪質の傾向があります。

私の経験ではJavaはPHPと比較して大きな欠点はありません。言語の選択は、人々が必要以上の知識を持っていず、物事の学習に時間をかけすぎている場合にのみ、プロジェクトの成功に影響します。そして、 Javaはそれ自体がプロジェクトである可能性がある)について適切な本を見つける(利点として数える)

しかし、私は間違いなくPHPを使用すると、プロジェクトを完了できます。

テクノロジーを選択する前に、目標と要件を検討したいと思います。これは多くの場合、意思決定を暗示または単純化します。

私はここで少なくとも1つの質問に答えたと思います:)

28
wemu