Java vs .NET

2

W skrócie, pracuje w Javie (1,5~ roku), mam jednak opcję przejścia na C# w ramach tej samej firmy i zastanawiam się czy w ogóle jest sens coś takiego rozważać.

Z plusów na pewno fajnie jest poznać nową technologię, może nawet bardziej spodoba mi się jak Java. Z drugiej strony, to kompletnie inny ekosystem, doświadczenie w tym zdobyte nie bardzo mi się przyda jeżeli po pół roku zdecyduje że to jednak nie to. Na pewno nie w takiej mierze jak nauka czegoś innego na JVM.
Poza tym jak takie skakanie po różnych językach ma wpływ na przyszłą karierę, plus że zna trochę tego, trochę tego czy raczej wręcz przeciwnie - nie jest ekspertem w żadnej dziedzinie.
No i sama praca - C# wydaje mi się nieco "przyjemniejszy", mniej legacy code i mniej korpo - ktoś to potwierdzi / wyprowadzi mnie z błędu?

5

Otwieram popcorn i czekam na posty...

Jeśli Ci się C# podoba to może zobacz sobie jeszcze jak robi się pewne rzeczy w tym ekosystemie, np. webówka w ASP Core. Więcej się nie wypowiadam bo za mało wiem, nie znam Javy z doświadczenia komercyjnego. Radzę również z przymróżeniem oka patrzyć na wypowiedzi które się tu pojawiają. Zaraz ukaże się masa "ekspertów" wylewających pomyje na jeden z tych języków, a nie będzie to miało nic z obiektywną oceną ani rzeczywistością.

0

.NET czy .NET Core?

1

Zakładając że te 1.5 roku to Twoje 1 doświadczenie to moim zdaniem to jest najlepszy czas żeby poeksperymentowac :) . Ja osobiście wole poznawac inne języki na JVM ale to tylko moja prywatna preferencja :)

0

Java i .Net mają swoje plusy i minusy nawet w kwestii ilości pracy, której po prostu w javie jest więcej.
Oba języki są bardzo podobne i raczej to kwestia tego w którym Ci się lepiej pisze, i może w niewielkim stopniu możliwość przejścia na aplikacje mobilne z javy (xamarin jakoś słabo się przyjął na rynku).

Weź też pod uwagę, że w najbliższej przyszłości nie będzie już podziału ma .net core i .net framework

2

Ja mam dwie uwagi jako osoba zajarana .NET Corem i trochę fanboy M$ - oba te języki są stosowane w korporacjach, więc legacy będzie w obu, ale zdecydowanie więcej ofert na utrzymanie Javy EE czy innych tego typu kwiatków widziałem po stronie Javy. Druga kwestia, to .NET Core właśnie - jeżeli jesteś dobry i chcesz pracować w technologiach "cutting edge", to Microsoft wydaje się mieć lepiej zaplanowany rozwój języka i frameworka. Chociażby proces open sourcowania ostatnich wersji pokazuje, co mam na myśli.

0

To brzmi jak pytanie o pomoc w podjęciu decyzji. Problem w tym, że my możemy zdecydować, ale odpowiedzialność za skutki tej decyzji ponosi pytający.

1

Dlaczego ma to być poznawanie nowego (ok - jest to rozwój) ale na zasadzie zastępowania tego samego (jeżeli chodzi nazwijmy to "dziedzinę"), dające to samo pole manewru, tylko brane z zupełnie innej bajki?

Nie lepiej poszerzać horyzonty i wiedzę zamiast zastępować jedno drugim w tym samym miejscu, jeżeli chodzi o zastosowania, typowe projekty, nastawienie na rozwiązywanie określonych zadań, miejsca pracy itd.?

0

@BraVolt: Strasznie chaotyczna jest Twoja wypowiedź. Jeśli dobrze rozumiem to sugerujesz naukę czegoś całkowicie innego (np. język w pełni funkcyjny). W takim razie nie zgodzę się. Zmiana z jednego języka na jakikolwiek inny w ten czy inny sposób również postawi nowe wyzwania i poszerzy horyzonty. Nie trzeba do tego całkowicie zmieniać paradygmat.

4

Proponuję rozwój z poszerzaniem domeny a nie rozwijanie wachlarza konkurencyjnych wobec siebie języków z tej samej działki, w której już w jednym języku pracujesz.

5

Raczej bym proponowal inne jezyki w JVM lub poza nim.
Typu Kotlin, Scala, Clojure, Jython, Groovy.
Albo Rust, Go, Julia, Nim, Haskell, Elixir, Elm, TypeScript..

Ten sam typ jezyka w innym runtime to troche nudny pomysl.

0

Ok, to już prędzej się zgodzę. Szczególnie jeśli te 1.5 roku autora to jego jedyne komercyjne doświadczenie.

2
Nech napisał(a):

Ja mam dwie uwagi jako osoba zajarana .NET Corem i trochę fanboy M$ - oba te języki są stosowane w korporacjach, więc legacy będzie w obu, ale zdecydowanie więcej ofert na utrzymanie Javy EE czy innych tego typu kwiatków widziałem po stronie Javy. Druga kwestia, to .NET Core właśnie - jeżeli jesteś dobry i chcesz pracować w technologiach "cutting edge", to Microsoft wydaje się mieć lepiej zaplanowany rozwój języka i frameworka. Chociażby proces open sourcowania ostatnich wersji pokazuje, co mam na myśli.

To jest wszystko bardzo subiektywne. Z drugiej strony, Java też ostatnio dużo dynamiczniej się rozwija (OpenJDK, release co 6 miesięcy). Do tego dochodzi mocno rozwijający się Kotlin, Scala (Akka itp.), jest jakiś Clojure (Lisp). Microsoft ostatnio także wykupił jClarity, które jest odpowiedzialne m.in. za AdoptOpenJDK i część zespołu jClarity będzie pracować nad optymlizacją JVM w MS Azure.

Bardzo trudno jest stwierdzić, kto ma "lepiej zaplanowany rozwój języka i frameworka". Takie rzeczy pewnie będziemy w stanie nieco bardziej obiektywnie ocenić za kilka lat. :)
Co nie zmienia faktu, że na pewno istotne jest, by były osoby zaangażowane zarówno w .NET, jak i w języki / frameworki JVMowe, żeby oba te ekosystemy mogły się rozwijać i wymuszać na sobie wzajemnie rozwój poprzez konkurencję. :)

Wywodzę się ze światka Javowego i wydaje mi się, że na JVM jest zdecydowanie więcej frameworków, języków i większa szansa na to, by znaleźć coś dla siebie + nie lubię pracy na Windowsie i jeśli byłem zmuszany do pracy na Windows, zawsze kończyło się to jakąś wirtualką z Linuxem. :)

Pamiętam też, że takie lambdy w C# były na kilka lat przed wejściem do Javy. .NET ma swojego LINQ też już od lat, a w Javie tego typu framworki (jak choćby JOOQ) dopiero powoli zdobywają popularność.

4

Druga kwestia, to .NET Core właśnie - jeżeli jesteś dobry i chcesz pracować w technologiach "cutting edge", to Microsoft wydaje się mieć lepiej zaplanowany rozwój języka i frameworka.

Coś mi się zdaje, że to "lepsze zaplanowanie" zawsze sprowadza się do tego, że w Javie jest wymazywanie typów, a w C# nie ma. Jeśli są jakieś inne argumenty to chętnie poczytam.

Chociażby proces open sourcowania ostatnich wersji pokazuje, co mam na myśli.

Możesz rozwinąć? MS w końcu pootwierał .NETa, wiele lat po Javie i to ma czegoś dowodzić? MS się obudził i zorientował, że duży biznes stawia na open source.

0

Specjalizacja jednego języka to bajka. Też o tym słyszałem, na studiach etc. ale to nie prawda. W pracy powinieneś znać dobrze swoją technologię, ale też pełno wszystkiego w okół. Z czasem tych głównych technologii przybywa. Spokojnie można używać komercyjnie z 10 języków i dobrze je znać, a mieć umiejętność zrobienia czegokolwiek w kolejnych kilkunastu. W praktyce robi się w tym, co jest odpowiednie do problemu, lub jaki codebase odziedziczyliśmy, jeśli to istniejący problem. No i 1.5 roku to nic, więc Javy też dobrze nie znasz ;) Spokojnie jeśli Tobie ta oferta odpowiada to bym radził spróbować. Zawsze możesz potem znów zrobić flip.

31

wibowit.jpg

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