.NET vs. J2EE - w co inwestować?

0

Witam.
Moje pytanie brzmi, w którą platformę lepiej jest zainwestować, której wróżycie lepszą przyszłośc itp., .NET czy J2EE? Prosze o wasze opinie, ponieważ mam dylemat w którą inwestować swój (jakżę cenny) czas [green] .
Pozdrawiam.

0

Zależy do czego to potrzebujesz, poza tym - przecież tak łatwo nauczyć się obu naraz.

0

poszukaj na forum - niedawno byla dyskusja na ten temat. Bodajze .Net okazalo sie nico lepsze :P

0

O ile się orientuję, póki co nadal większe zainteresowanie ze strony pracodawców jest na J2EE ale wg mojej niefachowej opinii, ten trend się zmieni. Ja stawiam na .NET i w tym widzę swoją przyszłość jako programisty.

0

Nie wiem, może mi się wydaje, ale to sławetne .NET to jest śpiew dalekiej przyszłości. I to nic, że i Borland i Microsoft go promują.

0

J2EE jest dojrzalsze, stabilniejsze i jest więcej dobrych bibliotek do tego.
.NET pod wieloma względami jest w tyle (np. NHibernate z .NET jest mocno za Hibernatem dla Javy). Poza tym na razie .NET słabo chodzi na Linuksach. Dobrych maszyn wirtualnych Javy jest kilka, dla .NET - jedna. Dlatego też uważam, że to ma szanse w przyszłości, ale jeszcze nie teraz. I w sumie wcale nie musi się przyjąć, bo .NET nic rewelacyjnego ponad J2EE nie wnosi.

0

ja uwazam ze lepiej inwestowac w .NET, pomimo ze nic nowego od javy nie wnosi to z tego co wiem jednak ma mniejszą zajętosc pamięci niz java, wydaje mi sie ze dostep do .NET poprzez wiele jezykow programowania daje duzy punkt dla niego

0

Inwestowanie w coś, co:

  • nie jest przenośne,
  • nie jest otwarte,
  • nie jest dobrze ustandaryzowane tak jak Java,
  • ma słabe wsparcie ze strony biznesu,
  • ma jeszcze mało bibliotek,
  • nie ma żadnych poważnych zalet ponad J2EE

jest sporym ryzykiem. Może się okazać, że będzie to klapa. .NET istnieje już dość długo (prawie 10 lat) i jakoś wielkiego boomu nie widać.

Zajętość pamięci i wydajność to nie żaden argument, zwłaszcza, że różnice są dosyć niewielkie i trudno stwierdzić co jest lepsze. W razie czego instaluje się mocniejszy sprzęt i załatwione. RAM jest tani.

Możliwość programowania w wielu językach na raz to tylko chwyt marketingowy. Marna zaleta i nikt tego prawie nie używa. Nie wyobrażam sobie zespołu kodującego jeden projekt w 5 różnych językach. Ciekawe jakby się dogadali i jak wyglądałaby ostateczna jakość. Pewnie byłoby "jakoś" a nie "jakość".

Jeśli MS nie wymyśli czegoś naprawdę rewolucyjnego to nie sądzę żeby .NET kiedykolwiek zdobył więcej jak 10% rynku.
Orientacyjna popularność (wg TPC): Java - 22%, C# - 4%. W 2005 r. Java zanotowała kilkakrotnie większy wzrost popularności niż C#.

0
Krolik napisał(a)

Może się okazać, że będzie to klapa. .NET istnieje już dość długo (prawie 10 lat) i jakoś wielkiego boomu nie widać.

.NET wydano w 2000 roku wiec 6 teraz stuknelo a nie 10 ;)

poza tym uwazam takie klotnie co jest lepsze za zbyteczne, i zgadzam sie z tym ze cos sie musi po prostu przyjac a to jest trudne, ale ja patrze inaczej, .NET mi sie po prostu podoba, i uwazam ze jest to fajny jezyk i mysle ze nawet jesli sie nie rozpowszechni tak jak java, to jest dosyc dobry moim zdaniem. i mysle ze nie chodzi o boom, teraz jest dosyc duzo jezykow programowania i wybór jest doscy trudny, w co zainwestowac, a .NET to po prostu nowe API pod Windows.

A co do przenosnosci istnieje cos takiego jak projekt MONO, ktory pozwala pisac w C# i .NET pod Windows i pod Linuxem.

0

Wiem, że to cienki argument i zapewne dość subiektywny, ale programowanie w Javie a w C# to jak jazda trabantem albo mercedesem :|

W mojej "karierze" programmera nie spotkałem jeszcze języka, który by mi tak działał na nerwy, tak odpychał. Gdyby jakaś siła wyższa kazała mi programować tylko w Javie, zatrudniłbym się chyba do malowania kranów :/

0

Wygoda programowania to kwestia bardzo subiektywna - dotyczy przyzwyczajeń. Gdybym chciał pisać w C# byłbym zdany na Windows. Niestety nie znam dobrego IDE dla C# pod Linuksa. Gdyby ktoś mnie miał zmusić do pracy tylko w Windows, to już wolałbym hodować kaktusy.

Pisałeś w Javie 5.0? Usunęli sporo denerwujących rzeczy. Jak mnie wcześniej też odpychało od Javy, to teraz jest już znacznie lepiej. No i adnotacje z EJB3 po prostu wymiatają. .NET chyba też ma coś podobnego, ale nie ma takich fajnych narzędzi do obiektowego mapowania relacyjnych baz danych. ADO.NET to prehistoria. NHibernate dla .NET jest jeszcze w powijakach.

.NET jest oficjalnie od 6 lat, ale zanim wyszedł, to w Stanach akcja marketingowa była już rozkręcona na maksa. Wiem, bo pod koniec 98 przyjechał do mnie znajomy z USA i opowiadał mi o planach M$ odnośnie .NET. Czyli rozwijane jest od co najmniej 7 lat, a nie wiadomo czy nie dłużej, bo od rozpoczęcia rozwoju do komercyjnego startu takich przedsięwzięć kilka latek może minąć. W tydzień pierwszej wersji nie zrobili.

Owszem, .NET jest fajne i znam wiele osób, którym się podoba. Ale żadna z tych osób nie robi przy dużych komercyjnych projektach, a jedynie dłubie sobie coś dla siebie. Prywatnie uważam, że Deplhi też jest fajne, ale udział w rynku jest koło 1%.
I co z tego? Ano to, że jak idę hipotetycznie do jakiejś firmy, to mi mówią, że "fajnie że znasz Deplhi, ale my robimy w J2EE". ;)

Pytanie dotyczyło J2EE i .NET czyli zastosowań biznesowych. Na tym polu J2EE na razie rządzi i nic nie wskazuje na to by to się miało zmienić. Prędzej zostanie częściowo zastąpione inną technologią Javową (np. ostatnio modnym Springiem) niż przez .NET. Po prostu ludzie, którzy w tym siedzą nie chcą się przekwalifikowywać na coś innego, jeśli nie ma wyraźnego powodu. Popatrzcie jak niewiele osób przesiadło się na C++ z C i jak długo ten proces trwa, mimo że dużo łatwiej się nauczyć.

A MONO jest jeszcze BETA. Nikt przy zdrowych zmysłach nie postawi na tym systemu działającego 24/7, jeśli ma do dyspozycji J2EE.

0
Krolik napisał(a)

nie ma takich fajnych narzędzi do obiektowego mapowania relacyjnych baz danych.
Miałem tego namiastkę na zajęciach - projekt z tego robiliśmy. Przez 5 lat studiów nic mnie do tak białej gorączki nie doprowadziło jak to. Pomijam już fakt, że właśnie do tego projektu dokupiłem sobie 1GB ramu, ale to nie ważne.

W Javie wkurza mnie też to, że na jednym kompie działa, na innym nie. Robiliśmy projekt w 3 osoby, każdy Win2k, na czysto ta sama wersja Javy, potem J2EE, baza Sky*** coś.. zapomniałem nazwy [Skyscrapper?]. Całość w Eclipse [największy moloch, jakiego znam - odpala się dłużej niż Delphi 6 - a myślałem, że to nie możliwe].

Tylko u jednej osoby udawało się to .. jak to się nazywało.. takie połączenie ziarenek J2EE etc. Wyleciała mi z głowy nazwa. W każdym razie u jednej osoby szło to, u innej połączenie z bazą ale na żadnym kompie nie udało nam się wykonać całości. Nawet nasz facet od Javy, który zna się na rzeczy, rozłożył ręce i zaliczył nam na podstawie wglądu do kodu :/

Programy pisane w .NET [przynajniej na moim kompie] śmigają o niebo szybciej, zżerają mniej pamięci.. a poza tym - od wersji 2003 .NET środowisko Visual Studio wymiata [jak dla mnie].

Zapewne jako osoba bardziej doświadczona masz rację. Być może póki co pisałem zbyt trywialne programy aby poznać tajniki obu środowisk i prawdziwie porównać możliwości i inne cechy. Jednak od Javy już zawsze będę uciekał. Opasłe, powolne olbrzymy z problemami przy uruchamianiu, kompilowaniu i przenoszeniu na inne maszyny. To moja własna opinia oparta na moim skromnym doświadczeniu :)

I żeby nie było - nie ciągnę tego tematu aby udowodnić wyższość .NET nad Javą. Piszę tylko swoje czysto subiektywne odczucia, które mooooże komuś pomogą podjąć decyzję :)

0

Tak przy okazji...
Zastanawiam się ostatnio nad zmianą narzędzi do programowania na coś nowszego.

Chodzi mi głównie o c++; te wirtualno-uniwersalne cudactwa nie są dla mnie zbyt istotne.

Interesuje mnie - jak w nowych Visual Studio projektuje się UI:
jest zachowany format .rc - dialogi, menu, itp...
czy też są tworzone jakieś inne 'formy', tak jak robi to Borland builder lub delphi?

I jeszcze - jakie ma wymagania sprzętowe (gł. RAM) Visual Studio 2003/2005?

pozdrawiam :)

coś mnie tu wylogowuje co 40s... [???]

0

a ja mowie ze james gosling > bill gates :)

wystarczy przejrzec oferty pracy, ciagle j2ee, j2ee..

do j2ee sie jeszcze IBM przylozyl reke ze swoim webshpere wiec to cos chyba znaczy

ja jestem mocno za java. zarowno se jak ee

0

Osobiscie pracuje na obu platformach (C# w .net) i szczerze mowiac wole Jave z paru wzgledow:

  1. Dokumentacja MSDN jest potezna, ale co z tego jak czasem trudno sie w niej odnalezc - bardziej przejrzystej od Javy jeszcze nie spotkalem.
  2. .NET to na razie duuuuza nakladka na WinAPI, dodaja wiele mozliwosci, ale nie wszystkie.
  3. C# w szczegolnosci (bo tylko w nim pisze, to o nim sie bede wypowiadal) jest bardziej podobny do Javy niz do czegokolwiek innego. Ale wydaje mi sie, ze polaczenie wielu elementow Javy, C++ i kilku innych jezykow nie wyszlo szczegolnie udanie. Owszem calkiem, calkiem - ale mistrzostwo to to nie jest.
  4. Duzo jest takich rzeczy w .net, ze kiedy sie chce uzyc jakiejs szczegolnej mozliwosci, np. pisania pluginow do office'a, to grzebiac glebiej okazuje sie, ze wielu rzeczy zrobic nie mozna, bo nie sa dostepne, jeszcze nie sa dostepne, albo w ogole nie beda, z jakichs tam powodow.

Ostatnia 'wlasnosc' .netu bywa szczegolnie wkurzajaca, bo czlowiek znajdzie opisy, klasy, itd., ktore idealnie pasuja do rozwiazania jego problemu, posiedzi kilkanascie/dziesiat godzin, a pozniej okazuje sie, ze d**a zbita, bo tego albo nie przewidzieli, albo uznali za 'security threat' i wylaczyli taka mozliwosc.

Przyznam sie szczerze - zakochalem sie w Javie - w zadnym innym jezyku nie pisze mi sie tak przyjemnie i intuicyjnie. Kiedy mam znalezc cos w dokumentacji zajmuje mi to 1-2 minuty. Nazewnictwo jest tak skonstruowane, ze nazwa poszukiwanej klasy, interfejsu, itd. nasuwa sie sama mimo olbrzymiej ilosci tegos. W .net z tym jest duzo gorzej.

Pod wzgledem optymalnosci kodu i dzialania wypowiadal sie nie bede, bo nie pisze takich aplikacji, ktore szczegolnej troski wymagaja (pewnie nie pisalbym ich ani w jednym ani w drugim :D). Wydaje mi sie, ze specjalnej roznicy nie ma. I tu i tu jest rozrzutnosc.

Jeszcze jedna kwestia - wydaje mi sie, ze .net jest zdecydowanie mniej przemyslany niz Java. Na przykladzie c# - kiedys znalazlem opis tego jezyka: Jest to polaczenie zalet C/C++(np. wskaznikow) z zaletami Javy (np. pelna obiektowosc, bezpieczenstwo kodu, itd.) z wyeliminowaniem wad tych jezykow. To krotki opis, ale zawiera blad myslowy. Np. brak wskaznikow w Javie to nie jest jej wada, tak samo jak brak pilnowania kodu w C/C++. One z zalozenia ich nie maja, bo Java ma byc bezpieczna (wskazniki zdecydowanie nie sa), a C/C++ szybki (a pilnowanie kodu to klasyczne waskie gardlo). Polaczenie tego C# wydaje sie srednim pomyslem bo:

  1. szybki nie bedzie (blokuja go wlasnosci i zalozenia Javy)
  2. bezpieczniejszy tez nie (blokuja go wlasnosci i zalozenia C/C++)

Nie wiem jak jest w innych jezykach - ciekaw jestem czym w takim razie jest J#, skoro C# to 'prawie' Java...

pozdrawiam
johny

0
wyspiarz napisał(a)

Witam.
Moje pytanie brzmi, w którą platformę lepiej jest zainwestować, której wróżycie lepszą przyszłośc itp., .NET czy J2EE? Prosze o wasze opinie, ponieważ mam dylemat w którą inwestować swój (jakżę cenny) czas [green] .

Wracając do pytania: to zależy :)
Java jest wieloplatformowa, otwarta, itd.
.NET jak na razie nie bardzo...

Sama znajomość Javy daje (i zapewne da w przyszłości) lepszą drogę do zatrudnienia (przynajmniej teraz). Wiele firm korzysta właśnie z tej otwartości, niskich kosztów, itp. rzeczy.

Ale chyba warto znać obie platformy, chociażby po to żeby wpisać to do swojego CV :D

0
johny_bravo napisał(a)
  1. szybki nie bedzie (blokuja go wlasnosci i zalozenia Javy)
  2. bezpieczniejszy tez nie (blokuja go wlasnosci i zalozenia C/C++)

Nie rozumiem tego błedu myślowego, przeciez wskaźniki sa w C# tylko w unsafe mode, czyli tak jakby ich nie było. Ogólnie jest to zaleta, bo można ich użyć jeśli zajdzie taka potrzeba... gdzie dostrzegasz wade C# w MOŻLIWOŚCI (nie konieczności) użycia wskaźników?

Java jest wieloplatformowa, otwarta, itd.

Przypomina mi sie tekst z bash'a: JAVA is good because it works on all OSes is like saying anal sex is good because it works on all genders.

0
Kooba napisał(a)
johny_bravo napisał(a)
  1. szybki nie bedzie (blokuja go wlasnosci i zalozenia Javy)
  2. bezpieczniejszy tez nie (blokuja go wlasnosci i zalozenia C/C++)

Nie rozumiem tego błedu myślowego, przeciez wskaźniki sa w C# tylko w unsafe mode, czyli tak jakby ich nie było. Ogólnie jest to zaleta, bo można ich użyć jeśli zajdzie taka potrzeba... gdzie dostrzegasz wade C# w MOŻLIWOŚCI (nie konieczności) użycia wskaźników?

Ja nie widzę w tym nic zdrożnego, tyle że to żadna rewelacja. Jeśli chcę mieć unsafe mode i wskaźniki, to raczej napiszę program w C++ a nie w C#, bo zyskam w ten sposób szybkość, przewidywalność i przenośność kosztem obniżenia poziomu bezpieczeństwa / stabilności. Jeśli super szybkość i oszczędność pamięci nie jest mi potrzebna użyję safe mode... w Javie, bo będę mieć lepszą przenośność niż w C#.

Jedynym argumentem za używaniem zwykłych wskaźników jest chęć uniknięcia narzutów i nieprzewidywalności działania odśmiecacza, np. w systemach typu real-time. Ale też coraz rzadziej, bo przecież dobre odśmiecacze radzą sobie doskonale w zastosowaniach real-time, powodują narzuty rzędu 5-10% i opóźnienia mniejsze niż pojedyncze milisekundy. BTW. W C++ też mogę pisać kod bez wskaźników, bez delete, z użyciem odśmiecacza.

Odnośnie mitu szybkości Javy to:

  • Java potrzebuje typowo 2-3 razy tyle pamięci co taki sam program napisany w C++.
  • Kod Javy wykonuje się typowo raptem o 10-50% wolniej niż optymalizowany kod C++, o ile jest dostatecznie dużo pamięci. To naprawdę nie jest źle.

To nie są jakieś moje wymysły, tylko wiele osób to potwierdza. Dotyczy to również dużych, praktycznych aplikacji. Eclipse (Java) startuje się mniej więcej tyle samo czasu co OpenOffice (C++). Stopień złożoności i wielkość obu jest podobna.

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