.Net開発者の求人を検索する場合、ほとんどは.Net、ASP、SQL Server、CSS、Javascript、AJAX、そしておそらくC#と同じものです。一方、Javaでは、Java、Sturts、Spring、JSF、EJB、RDMB、Eclipse RCP、CSS、Javascript、AJAX、Rest、特定のJava API。テクノロジーが非常に集中しているため、.Net開発者になるのは簡単ですか?それとも、そのように思われますか?
簡単というよりはむしろ違います。
Javaジョブがフレームワークに対してリストされている理由は、Javaは、物事を維持しやすくするために使用できるフレームワークとデザインパターンがたくさんあるためです。パターンとフレームワークは.NETにも登場し始めているため、ジョブがJavaジョブに似ているように変化することを期待してください。
両方の世界に同じくらい多くのパターンとプラクティスがありますが、それらはJavaコミュニティでより確立されています(Java雇用主はあなたにそれらをプッシュします、あなた.NETの雇用主を押していることに気づくでしょう)。
主に、Java vs .NETは構文です。どちらかを行います(両方を行ってください!)。しかし、より良いコードを書くのに本当に役立つパターンとフレームワークに注意してください。
私はC#の開発者です。信じてください。Javaには.Netよりも多くの選択肢があります。Netの明らかな利点は、どの仕事でも同じ= IDE(Visual Studio)および(ほとんどの場合)最新の.Netフレームワークを使用します(レガシーアプリのメンテナンスを除く)。エンタープライズライブラリ、MVCを使用するなど、雇用主によって微妙な違いがある場合があります。 vs Forms、WPFなど;しかし、経験豊富なC#開発者であれば、基本に応じて簡単に適応できます。
他のプログラミング言語を学んでいない私の分野の一部の開発者は、怠け者であり、単にオブジェクトをドラッグアンドドロップして80%の時間タスクを達成する傾向があります(一部の開発者は、オブジェクト指向プログラミングは単にオブジェクトを使用したコードであるとさえ考えています) 。 C++またはCベースの言語に精通している場合は、間違いなく優位に立つことができますが、それは要件ではありません。
プログラミングのベストプラクティスを学び、すべての卵を1つのバスケットに入れないでください(神が私たち男性にそれをやったとしても)、C#以外の他の言語に開かれていることをお勧めします。 Cベースの言語を1つ学習する場合、他の主要な言語を学習するのはVB.Netから始めるよりも難しくありません。
いずれにせよ、彼らは両方とも良い仕事をしていて、どちらかを選んでも後悔することはありません。
私の2セント。
はい、Javaを使用すると、JSF、Struts、Struts2、Wicket、SpringMVC、Stripe、Tepestry、FaceletsなどのWebフレームワークがあります。いくつかの名前を付けます。異なるフレームワークを使用しているので、仕事を変えると新しいフレームワークを学びます唯一のWebフレームワーク、永続性はどうですか?JDBC、Hibernate、JDO、iBatis。 5つの異なるアプリケーションサーバーを使用しましたか?データベースはどうですか?InformixとTeradataを使用しました。すべての.NETはSql Serverを使用しており、1つのデータベースを簡単に学習できると思います。
次の.NETテクノロジーを忘れないでください。Win.Forms、Silverlight、WCF、WPF、WWF ... .NETには、Web開発以外にも多くの学習があります。 senior .NET開発者になるのは簡単ではありませんが、少なくともJavaほど簡単ではありません。ただし、IMHOでは、過去の開発経験がない場合に.NETで起動する方が簡単です。
Java自体には、さらに多くのフィールドがあります。 Java開発者は現在、市場の他のどの技術よりも多くの機会を得ています。彼らは、さまざまなJavaベースのアプリケーション、ソフトウェア、ゲームなどを開発する魅力的な報酬で雇われています。 Java :)に固執するだけです
Javaの世界では、多くのコミュニティの技術を使用して開発します。NETの世界では、Microsoftの技術のみを使用します。私の意見では、Java開発者はテクノロジーの選択に関してはより自由ですが、時には問題ももたらします。 :)
あなたが言及する技術を並べましょう(そして、あなたが言及しない技術もあります)。これは必然的にやや不正確になるので、ピッカーの楽園になります:)
.NET Java包括的テクノロジー ASP Struts A Web開発フレームワーク JSF (.NET BCL?)Springアプリケーション開発フレームワーク EJB SQL Server RDBMSデータベース (VS)Eclipse An IDE
CSS、Javascript、AJAX、RESTは、両方のスタックに共通のテクノロジーです。
学習しなければならないテクノロジーの概念は、どのスタックを選択しても同じです。名前が異なるだけです。 .NETのものはすべて「Microsoft Blah Blah Blah」になりますが、Javaのものはすべてファンキーでクールな名前になります...
他に考慮すべき重要な点は、.NETまたはJava開発者としてキャリアの途中で「ブランド」を取得できることです。その時点で(理解できるように)切り替えるのが難しくなります。これまでのところ、私は交互に行ってきましたが、それはそれぞれの側で新しいライブラリ/フレームワークの経験にギャップがあるという独自の一連の問題を伴います。
開発の長所/短所に関する他の考えJava vs. .NET?たとえば、どのような種類の企業、文化、賃金など?
私にとっては、.NETはより確立された企業にいる傾向があるようですが、Javaは多くのスタートアップで使用されています(低コストのエントリとオープンソースライブラリが利用可能な場合)。 、しかし.NETは少し高いようです。Java開発は、新しいフレームワークをより頻繁にプレイできるようになり、特定のパラダイムに制限されないため、もう少し楽しいかもしれません。
私の.Net仲間と話をするとき、ほとんどの人はMicrosoftのやり方で物事を行うため、かなり標準的なものから始める方が簡単だと思われます。 Javaの選択肢が多いため、さまざまなレベルのライブラリとツールキットを選択する必要があります。 Javaの利点は、公式または一般的な方法があなたに合わない場合、利用可能なオプションがさらに多くなるということです。
実際には、それが大きな違いを生むとは思いません。単一のJavaショップは通常、特定の1つに収まります。たとえば、StrutsまたはSpringまたはJSF、3つすべてではありません。HibernateまたはIbatisまたは純粋なJDBC、3つすべてではありません。 Javaスタックまたは.Netスタックを使用しているかどうかにかかわらず、おおよそ同じような問題を解決しているという点で、学ぶべき量は同じです。