Trudny wybor, czyli .NET kontra Java, nie moge sie zdecydowa

0

witam

Post ten prosze potraktowac powaznie, bardzo prosze o KONSTRUKTYWNE komentarze, nie rzucanie tekstow typu win to shit itd.
Chcialbym poczytac wypowiedzi ludzi, ktorzy znaja chociaz czesciowa obie opisane tu technologie.

Pisze ten post poniewaz musze podjac pewna decyzje, ktora moze miec dosc duzy wplyw na maja przyszla kariere zawodowa.
Na poczatku powiem cos o sobie :), aktualnie jestem studentem 3 semestru informatyki, jaka specjalizacje zamierzam wybrac sobie Inzynierie Oprogramowania. Samym programowaniem zajmuje sie od 6 klasy szkoly podstawowej, od 3 klasy gimnazjum jestem uzytkownikiem linuxa i naprawde jestem zadowolny z tej decyzji o przesiadce windows->linux, ktora podjalem dawno temu.
Jako ze moje studia trwaja 7 semestrow, chyba juz pora pomyslec powaznie o pracy, przyszlym zatrudnieniu, tutaj wlasnie pojawia sie moj problem.
Od Jakiegos czasu przegladam rozne serwisy z ofertami pracy, nie trudno zauwazyc ze najwiecej ofert pracy dzisiaj jest w nowych technologiach, czyli .NET lub Java. Na dzisiejszy dzien programuje w .NET uzywajac jezyka C# oraz w Java, narazie jednak tworze tylko aplikacje okienkowe, a wiec WindowsForms dla .NET oraz Swing dla Javy. Zauwazylem rowniez ze znaczniej prosciej jest sie "wstrzelic" w rynek technik internetowych. W tym momencie zupelnie nie moge sie zdecydowac czy wybrac ASP .NET 2.0 czy moze jednak poswiecic swoj czas i poczuczyc sie pisania Servletow,JSP,JSF, sprobowac Springa, Hibernate, poczytac cos o EnterpriseJavaBeans.
Platforma microsoftu z jednej strony pociaga mnie poniewaz wiem ze firma ta dostarcza IIS, baze danych ktora jest SQL Server, server smtp, pop3, wszystko to moze stac np. na Windows 2003 Server, do tego mam bardzo przyjemne srodowisko jakim jest VisualStudio. Wszystkie te produkty bardzo ladnie sie ze soba integruja, wiekszascia z tych produktow mozna rowniez "zarzadzac" piszac swoje programy w .NET (wiecie o co chodzi :)). Do tego swietna dokumentacja MSDN, support ze strony firmy, po prosty wydaje mi sie ze wybierajac wlasnie rozwiazania microsoftu mniej sie urobie niz wybierajac Java i roziwazania OpenSource. Z drugiej jednak strony wszystko to co do tej pory wymienilem to technologie ClosedSource, co niestety jest sprzeczne z moimi idealami :( Zawsze popieralem OpenSource cenilem sobie ta "wolnosc" jaka daje mi OpenSource, ciezko mi tak po prostu to porzucic. Z drugiej strony jest platforma mono, ktora jest OpenSource i umozliwia tworzenie aplikacji na windows, linux, mac os x, do tego jest mod_mono do apache, ktory daje nam XSP, czyli mozliwosc tworzenia aplikacji internetowych w OpenSource, pod wszystkie platformy.
Java z kolei jest rowniez bardzo dobra platforma, ma duze mozliwosci, tak jak juz powiedzialem J2EE czyli JSP,JSF,Servlety,Spring,EJB daja mozliwosc tworzenia naprawde dobrych aplikacji internetowych i do tego jest OpenSource oraz kontenery J2EE czy to TomCat czy JBOSS stawia sie glownie na platformach unixowych, w tym linux. Niestety wada jest to ze nie jest tak zintegrowana z innymi rozwiazaniami jak platforma microsoftu. SUN tworzy sama maszyne wirtualna, server HTTP tworzy apache, kontener rowniez (tomcat), baze moge sobie wziasc np. MySQL, Oracle albo PostreSQL, a jezeli mamy jakis wiekszy projekt to trzeba sie wziasc za ant albo mavena (budowanie projektu). Jesli chodzi o srodowisko to SUN oficjalnie poleca NetBeans, ktoremu do idealu naprawde duzo brakuje, zwlaszcza jezeli porownamy go z VisualStudio. Z NetBeans mam zreszta bardzo ciekawe doswiadczenia, jest bardzo wkurzajacy podczaas tworzenia duzych formularzy (mowie tu o okienkach w swing). Sami widzicie, kazdy robi co innego :( Do tego musze powiedziec ze jesli chodzi o przenosnosc  aplikacji to naprawde nie jest tak ze jedna aplikacja tak samo chodzi na

windows,linux,mac os, ja zawsze zakladam ze chodzi tak samo w 90% :P, jezeli ktos nie wierzy to znaczy ze chyba za malo w Javie pisal :] (albo ja sie myle :P). Wybierajac jednak ta opcje zachowam twarz i nie przejde nagle z OpenSource->ClosedSource.
Wiec sami wydzicie, wybor .NET a Java jest dosc trudny i naprawde nie wiem co wybrac, w czym sie specjalizowsc, a wiec pomozcie bo spac po nocach nie moge ;-)

(jezeli cos napisalem niejasno, nielogicznie to przepraszam, jest juz dosc pozno i moja percepcja pisania klarownych tekstow moze nie byc doskonala)

0

Aspekty, które przemawiają za .NET:

  • niesamowita liczba ogłoszeń o programistów .NET (choć JAVA też ma bardzo dużo)

  • łatwość robienia wielkich projektów w ASP.NET (web serwisy)

  • trudno sobie wyobrazić lepsze narzędzie programistyczne od Visual Studio 2008 (po prostu nie ma takiego!)

  • .NET ciągle się rozwija (nawet za szybko), dokładając masę technologii, klas i innych rzeczy.

  • łatwość integracji różnych elementów systemu informatycznego z .NET (Visual Studio <> IIS <> MS SQL Server - zgodność typów!)

Na końcu cytat Bruce Eckela z książki "Thinking in C#":

Java has succeeded in two key areas: as the dominant language for writing server-side
applications and as the top language for teaching computer science in colleges. The
.NET Framework is better for both these areas, although it is not inevitable that it will become dominant in either. For writing client applications, there is no question that C# clearly outstrips Java.

0

Wybierz .NET/Javę, bo jest lepsza/gorsza ()!
A Windows/Linux (
) to shit!

<font size="1">(*) odpowiednie skreślić</span>

A tak na serio - piszesz o ideałach. Ale mówisz o OpenSource, czy Free Software? Bo jeżeli tylko o kwestię dostępu do źródeł Ci chodzi, to kod źródłowy .NET Framework jest dostępny. Gorzej, że poprawiać nie można, wykorzystywać poza edukacyjnymi celami nie można i tak dalej. Wolności nie ma. .NET też nie zmusza Cię automatycznie do używania MSSQL, są providery do innych baz (a do Oracle to chyba nawet i LINQ będzie/jest już). No i masz Mono, ale o ASP.NET pod mod_mono/xsp to na razie nie myśl tak poważnie...

A może po prostu zapytaj sam siebie w czym się pisze, Tobie, wygodniej? Może odpowiadają Ci bardziej małe literki na początku nazw metod, a nie wielkie? ;-)

0

Najlepiej to naucz się obydwóch języków ;-)

0
kubARek napisał(a)

Najlepiej to naucz się obydwóch języków ;-)

Najlepiej sie nauczyc sie jeszcze chodzic po ksiezycu...

Jak juz masz sie uczyc czegos, to ucz sie jednego a dobrze. Jak juz bedziesz umial myslec programistycznie to pewnie przesiadanie sie nie bedzie az takim problemem... jednak po co sie przesiadac, skoro specjalizacje zrobisz w jednym?

W mojej firmie jest mniej wiecej pol na pol... z javy i z .net'a ciagle ludzi malo, wiec po prostu wybierz to co bardziej lubisz :)

0

Popieram Detiego. .NET sie rozwija tak szybko ze nie jestem w stanie nadarzyc ;D
Moja wiedza zatrzymala sie na wersji 2.0, i VS 2005. Ale w VS 2008 i .NET 3.5 dolozyli naprawde fajnych rzeczy.

Ciezko mi sie wypowiadac na ten temat gdyz Javy praktycznie nie znam. Ale powiem Ci, ze jezeli nie bede zmuszany, nie planuje sie jej uczyc. Za to planuje poglebiac swoja wiedze na temat .NET. Pamietaj, ze .NET to nie jezyk programowania, tylko cala platforma, idea, wizja pisania aplikacji. MS dokladna wszelkich staran, aby ta platforma byla najpopularnisza, a jezyk C# - liderem wsrod jezykow. I wiesz co? Im sie to uda...

0

Witam

Widzisz czester prawda jest taka ,że aby otrzymać naprawdę rzeczową odpowiedź na swoje pytanie musiałbyś znaleźć kogoś kto w równie mistrzowskim stopniu opanował obydwie technologie. W innym przypadku zobaczysz czysto subiektywne zdanie danej osoby zalezne głównie od tego ,która technologię poznała jako pierwszą (ew. jedyną). Jeśli widzisz wypowiedzi typu "nie ma lepszego IDE, po prostu nie ma!" czytaj to jako "nie znam innego środowiska programistycznego które umiałbym obsługiwać równie dobrze jak to" , jeśli widzisz wypowiedź typu " w tej technologii po prostu to i to robi się najlepiej" czytaj : "moja wiedza na temat innych technologii jest zbyt mała i niestety nie wiem jak za ich pomocą osiągnąć podobny efekt".
Moim zdaniem obydwie technologie mają podobne możliwości ,bogate możliwości, obydwie przynajmniej w najbliższych latach będą się rozwijać gdyż stoją za nimi potężne koncerny, i znając dowolną z tych technologii łatwo znajdziesz pracę (oczywiście dyskusja o pasji do tego zawodu jest w innym wątku).

Także moim zdaniem z racji tego ,że nie jesteś jeszcze związany z żadną z tych technologii to jakiego wyboru byś nie dokonał będzie to wybór moim zdaniem właściwy. A jeśli już będziesz miał kilka lat praktyki w jednej z nich to w razie potrzeby z łatwością przestawisz na drugą.

PS. na grupie dyskusyjnej javy niedawno był podobny temat (gdzie grupka zwolenników .NET odpierała zmasowany atak), który możesz sobie poczytać.

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1