Google、Amazon、またはLinkedInは最新のものとみなされますか?
Javaは最新のWebアプリケーションに使用されます。企業全体を見ると、これはWebアプリケーションで最も頻繁に使用される言語です(内部)。
とはいえ、Javaは、Web開発標準がすべての人にすべてのものになることを試みた(おそらく今でもそうである)期間を経ました。「繰り返さないでください」は、XML地獄とJava Web開発の長いビルドサイクルへの対応でした。その結果、Java(EJB、Struts、JSFなど)は、すべての新しいパラダイムが克服しようとしているものと見なされるようになりました。
Java、言語は冗長です。それは長所と短所です(メンテナンスには最適で、開発者には不愉快です)。まだコーディング時間を大幅に削減できるJavaにまだ組み込まれていない最新の言語機能がいくつかあります(プロパティ、イベント、クロージャー、ジェネレーター、リストの理解など)。そのため、より現代的な言語から来た場合、イライラする可能性があります。そうは言っても、C#になりつつあるネズミの巣になることなく、成熟した言語に追加することは困難です。
最新のWeb開発で使用される多くの言語は、動的に型指定されています。これにより、記述されたとおりにコードを動的にリロードできるツールが可能になります(これは、静的言語jrebelでは実現が困難です)。Web開発は高速な反復に適しているため、動的再読み込みは大きな勝利です。グリーンフィールドプロジェクトの開発サイクルを大幅に短縮し、UIとUXを適切に取得しやすくします(本質的に試行錯誤)。
静的言語にも場所があります。複雑で、何年も実行する必要があり、問題なくスケーリングし、非常に高速で、完全にエラーがなく、静的に型付けされた言語(JavaやCなど)が必要なバックエンドロジックが推奨されます。
さらに、開発者の数/売上高が増加し、製品が成熟するにつれて、意図的な人々がバグを急増させる可能性が高くなります。適切に設計されたJavaプロジェクト(これらのphpバンパイアのインターフェイス、パターン、聖水)が実施する厳格さと規律は、長期的なリスクを軽減するのに役立ちます。これは単体テストでも実現できますが、静的チェック(およびfindbugsやclangなどの静的アナライザー)から派生したセーフティネットは、手書きテストでは再現が難しい組み込みレベルのコードカバレッジを提供します。誤解しないでください。ユニットテストと機能テストがあるはずですが、実際の組織は100%のカバレッジを達成できません。彼らがチェックするために、静的アナライザーは行います。
したがって、独立して開発されたコードのチャンク間に複雑な相互運用がある大規模プロジェクト(コードサイズよりもチームサイズで定義される)では、Javaのような言語が依然として好まれます。例としては、金融ブローカー(ameritrade)、金融取引所(nasdaq、nyse、.net失敗後のロンドン)、オンラインバンキング(ほとんどすべて)、電子メール(google)、オークション(ebay)などの大規模/複雑なWebアプリケーションがあります。など
パフォーマンスとスケールの観点から見ると、Webアプリケーションのスケーラビリティとパフォーマンスの組み合わせ(facebookのアプリケーションパーティショニングのカウント方法に依存します)がJavaプラットフォームを超えるものはありません。たとえば、Twitterは、失敗したクジラを海に戻すために、Java VM上でScalaのRubyインフラストラクチャの大部分を書き直さなければなりませんでした。私は他の大きな例について聞いたことがありますが、それらは今私をそらします。
また、セキュリティを考慮する価値があります。Javaブラウザプラグインはセキュリティの脆弱性をかなり抱えていますが、Javaプラットフォーム自体は、作成されたより安全なプラットフォームの1つです。Java Webアプリケーションは、非常に安全であるという評判があります。それは、SQLインジェクションやバッファオーバーフローなどの攻撃を可能にするコーディング慣行、ライブラリ、およびアーキテクチャに長らく落胆されてきたミスです。他のWebプラットフォーム(レール)のセキュリティ評価は良好ですが、Javaを超えるものはありません。
要するに、ほとんどのWebアプリケーションは技術的にシンプルです。単純なことですが、Javaはしばしば過剰です(Cで記述した昔のように:))。ただし、webappが複雑(バックエンドなど)である場合、または100人以上の開発者がいると予想される場合、Javaに勝るものはありません。
-
個人的には、Grailsをよく使用します。これは、両方の長所を備えているためです(Rubyの世界でますます人気が高まっていると聞いているJRubyについても同じことが言えます)。
ところで-PHPの台頭は本当に不可解だと思います。言語としてのPHPは、読みやすさではperlに、結果の品質ではVBにほぼ相当します。それは恐ろしい慣行を助長し、維持することはほとんど不可能であり、サードパーティのライブラリは期待通りに動作することはめったになく、Larry Wallを...まあ...壁を動かす構文を持っています。私が思いつくことができる唯一の説明は、(VBのような)漸進的な学習に役立つということです。言い換えれば、プログラミング/管理についてほとんど知らない有用なことを達成でき、一度に少しずつ知識を広げることができます。導入の観点から言えば、それについて多くのことが言われています。ただし、企業/製造業界の「プログラマー」によって作成された数十億のVBアプリの1つをサポートまたは交換する必要がある人にとっては、おそらくあなたは頭を振って退職を計画しているでしょう。:)