Mam ponad 10 lat doświadczenia w Javie (od wersji 1.1, naprawdę!) I 7 lat doświadczenia w .NET (głównie C #).
Podejmujesz bardzo przemyślaną decyzję, ale przede wszystkim powinieneś spróbować rozbić się na kilka scenariuszy:
Aplikacja pulpitu
Jeśli tworzysz aplikację komputerową, musisz korzystać z głównej platformy, z którą będziesz pracować. Jeśli jest to platforma Microsoft .NET, nie ma lepszego rozwiązania niż platforma opracowana przez sam statek macierzysty. Jeśli jest to scenariusz dotyczący systemu Linux lub wieloplatformowego, rozważ Java lub przejście na rozwiązanie internetowe.
Aplikacja internetowa
Jest to bardzo trudna decyzja, ponieważ każda z nich ma swoją siłę i słabość. Oto kilka:
DO#
Siła: Obecnie ma większy rozmach, budując nowe funkcje w języku i platformie / frameworku. Wszystko pochodzi od jednego dostawcy i na pewno jest to zaleta. Możesz także użyć niektórych bardzo potężnych komponentów, takich jak na przykład DevExpress (Java nawet się nie zbliża, aby mieć coś takiego, jak zespół DX-a przez lata, co stanowi ogromny wzrost wydajności).
Słabość: w przypadku aplikacji korporacyjnych .NET nie jest tak dojrzały jak Java. Nie masz tylu dostawców budujących oprogramowanie dla przedsiębiorstw w .NET, jak dla Javy.
Jawa
Siła: Bardziej dojrzała (już wyjaśniona) i ma dużą społeczność z kilkoma świetnymi projektami open source, które mogą pomóc. Kilka tzw. Projektów open source .NET to tak naprawdę kopia projektów Java.
Słabość: Oracle jest właścicielem Java (wiem, nie JCP) i jest to z pewnością ryzyko, które należy wziąć pod uwagę. Ich intencje nie są bardzo jasne i osobiście nie podoba mi się, gdzie teraz zmierza język (wiem, że wielu programistów Java ma podobne obawy).
Aplikacja po stronie serwera
Zasadniczo są to te same argumenty co aplikacje internetowe, ale ponieważ nie musisz się zbytnio przejmować interfejsem użytkownika, Java w tym przypadku staje się silniejsza. Ale znowu, jeśli platformą jest głównie Windows .NET może być lepszym wyborem.
Ogólne uwagi
Ogólnie rzecz biorąc, moim zdaniem .NET ma tę przewagę głównie ze względu na ścisłą integrację Visual Studio 2010 (bez najlepszych IDE), MS SQL, Entity Framework, IIS i tak dalej. Wszystko to stanowi ogromny wzrost wydajności i mam na to mnóstwo doświadczenia. Pracuję również z programistami Java, którzy przeszli na platformę .NET i dzielą się w zasadzie tą samą opinią.
Myślę, że to dobrze, że Microsoft jest silniejszy niż kiedykolwiek, co oznacza, że .NET będzie tam przez jakiś czas. Więc patrząc 10-15 lat do przodu, czuję się bezpieczniej z .NET niż Java.