NET のクロージャは多くの開発者に人気があり、Java も間もなくクロージャを実装するようです。もちろん、これはランタイム機能ではなく言語機能です。最終的にどちらを選択するかは、個人の好みと地元でのキャリアの機会によって決まると思います。 .NET のクロージャ機能は多くの開発者に人気があり、Java にも間もなく実装されるようです。これはランタイム機能ではなく、言語機能です。最終的にどちらを選択するかは、個人の好みと地元でのキャリアの機会によって決まると思います。
1.Java SE 7 が .NET CLR に遭遇すると何が起こりますか?
Java SE 7の機能リストからわかるように、以前のバージョンと比較して大幅に改善されています。それで、それはゲームチェンジャーではないと思いますか?過去数年にわたって、JVM と .NET CLR の両方に数多くの改良が加えられ、これまでは非常に熟練したプログラマーのみが達成できた多くのことが、JVM の機能強化のおかげで、現在では一般のプログラマーでも実行できるようになりました。そして.NET CLRを取得します。
JVM と .NET CLR は同じアイデアを同時に実装したわけではありませんが、一方に良いアイデアが現れれば、もう一方もすぐにそれをフォローします。これは実行時レベルで反映されるだけではありません。たとえば、Java の場合、Hibernate プロジェクトが大成功を収めた後、.NET もすぐに NHibernate を立ち上げました。 .NET のクロージャー関数は多くの開発者の間で非常に人気があり、Java では間もなくこれらの関数が実装されるようです。これはランタイム機能ではなく、言語機能です。
.NET クロージャは大ヒットしており、Java もすぐに追随するでしょう
2. 近い将来、一方のランタイムがもう一方のランタイムを完全に打ち負かすことになるでしょうか?
JVM と .NET CLR は技術レベルでは非常に似ていますが、それぞれに独自の市場があり、どちらもあまり柔軟性がありません。 .NET サーバーと IIS を中心にインフラストラクチャを作成した場合、翌日起きてそのすべてを Java に移行することはできませんし、その逆も同様です。企業が開発プラットフォームを切り替えることを決定した場合でも、開発チーム全体を置き換えたり、最初からトレーニングしたりする必要がある場合があります。トレーニングが完了した後でも、スキルには依然として重大な欠陥があり、上級 .NET 開発者が 3 か月のトレーニング後に突然上級 Java 開発者になることは不可能です。
さらに、会社は既存のコードを保守するために既存の技術担当者を維持する必要があります。これらの従業員が自分のポジションが削除されたり、スキルが役に立たなくなったり、価値が下がったりするのを黙って見ていると思いますか? もちろんそうではありません。企業にとって、Java から .NET への完全な切り替え、または .NET から Java への完全な切り替えは自殺行為です。従業員の再教育はせいぜい複数年にわたるプロジェクトを通じて行われます。 VB6 から .NET への移行には、.NET がリリースされてから 8 年かかりました。
プログラマーとプロジェクトの変革には時間がかかる
3. Java 開発のコストは .NET 開発よりも経済的ですか? もしそうなら、人々は投資を節約するために Java に目を向けるでしょうか?
ツールだけを見ているのであれば、私の答えは「正解でもあり不正解でもあります。」確かに、必要に応じて完全なオープン ソース パッケージで Java を実行できます。 Linux/Tomcat/MySQL/Java の組み合わせを使用することも、サーバー側で SpringSource の組み合わせを使用し、開発者のコンピューターで Eclipse または NetBeans を使用することもできます。ただし、何らかの理由でオープンソースの代替案をあまり好まない人はいないということを指摘することが重要です。その場合、代替案が悪いと言っているわけではありません。 .NET ツール かなり高価で、多くの場合さらに高価です。そして、Oracle や IBM などの企業の取り組みを見てみると、多くの企業が独自の Java ツールにお金を払う必要性を感じていることは明らかです。価格の点では、Microsoft はほとんどの場合、特定の市場セグメントにおいて最も低価格のエンタープライズ ベンダーです。
さらに、切り替えコストがなかった場合に会社がどれだけのお金を節約できるかを考慮する必要があります。 Visual Studio のコピーのコストは、中程度の収入の開発者の週給と保険料よりもはるかに安価です。さらに、同じ開発者が Java を学習し、.NET を得意とするレベルに達するまでにかかる時間は 1 週間よりもはるかに長くなります。
公平を期すために、この分析は Java から .NET への移行にも当てはまります。プラットフォームの切り替えの苦労に比べれば、開発ツールのコストは本当に取るに足らないものです。もちろん例外が 2 つあります。 1 つ目の状況は新しい会社を設立するため、移行コストの問題はありません。この場合、Java にはまだコスト上の利点がありません。Microsoft も Visual Studio の無料版 (Express バージョン) をリリースしており、会社が新しい場合は、BizSpark を通じて 3 年間無料で入手できるためです。 MSDN と Microsoft のライセンスを取得したプランは悪くありません。もう 1 つの例外は、Google や Yahoo など、サーバー対開発者の比率が非常に高い企業です。このような企業では、何千ものサーバー上で実行されるアプリケーションの開発に多くの開発者を抱えている場合があります。この場合、コスト削減の主な要因は開発者ツールではなく、サーバースペースです。このような状況に直面している企業にとって、Java (およびその他のオープンソース テクノロジ) には決定的なコスト上の利点がある可能性があります。
4. Java 開発者が .NET で効率を高めるには、どのくらいのスクリプト言語を理解する必要がありますか?
まず、Web 開発に携わっている場合は、JavaScript について理解し、対応するフレームワークに慣れておきたいと思うかもしれません。バックエンドの作業では、動的言語またはスクリプト言語の知識は必須でも必須でもありません。それにもかかわらず、Java スペースには、この目的に適したオプションが数多くあります。現在 Java 開発者ではない私には、この分野で語れるような実際の経験はありませんが、Groovy と Scala については良い評価をたくさん聞いています。より主流のテクノロジーを選択したい場合は、JRuby と Jython が適しています。
Java アプリケーションのパフォーマンスを向上させるにはさまざまな方法があります
過去数年にわたって、JVM は非 Java 言語を多数サポートし始めており、開発者には多くの選択肢が与えられています。これらのいずれかを学ぶことは、(実際の実稼働プロジェクトでそれらを使用しない場合でも) より優れた開発者になるのに間違いなく役立ち、プロジェクトが行き詰まったときに別の方向性を提供することができます。
Java は .NET に取って代わるのでしょうか? それを言うのは時期尚早です。同時に、.NET は Java を強制終了しません。どちらにも独自の長所と短所があります。最終的にどちらを選択するかは、個人の好みと地元でのキャリアの機会によって決まると思います。