Java vs .NET

Odpowiedz Nowy wątek
2019-09-10 21:27
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?

Pozostało 580 znaków

2019-09-11 11:17
0

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


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.

Pozostało 580 znaków

2019-09-11 11:27
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ść.

edytowany 3x, ostatnio: catom, 2019-09-11 15:23

Pozostało 580 znaków

2019-09-11 11:43
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.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Pokaż pozostałe 2 komentarze
Zależy co rozumiemy przez lepiej zaplanowany rozwój. - some_ONE 2019-09-11 22:31
@some_ONE: No dokładnie o tym wcześniej pisałem (w osobnym poście). To wszystko jest subiektywne i o tym, czy coś było lepiej zaplanowane, w tego typu kwestiach, mamy szansę dowiedzieć się dopiero po fakcie. Dlatego w ogóle, samo sformułowanie "lepiej zaplanowany rozwój" jest dla mnie niewiele znaczącym frazesem. - catom 2019-09-11 23:07
Lepsze zaplanowanie jakoś nie kojarzy mi się z wyścigiem na ficzery i dodawaniem setek keywordów i wariantów składni do języka. Natomiast język Java się rozwija, znacząco wolniej niż C#, ale wciąż się rozwija i nie ma powodu, by w najbliższej przyszłości przestał. Przejrzyj sobie takie projekty jak http://openjdk.java.net/projects/loom/ http://openjdk.java.net/projects/panama/ http://openjdk.java.net/projects/valhalla/ http://openjdk.java.net/projects/amber/ itd - Wibowit 2019-09-11 23:10
Ale nie twierdzę, że Java się nie rozwija. Jest moda na programowanie funkcyjne to powoli dodają też takie rzeczy do C#. Jak dla mnie to plus, w końcu nie trzeba tego wszystkiego używać. Tylko teraz to przedstawiasz jako wyścig na keywordy i ficzery, a z czasem jak wynika z linków to samo pewnie trafi do Javy. Jak coś ma mi ułatwić pisanie kodu to wolę to dostać teraz niż za x czasu. - some_ONE 2019-09-11 23:16
Niby jest moda na programowanie funkcyjne, ale pewnie 90%+ Javowców i C#-owców myśli, że przerzucanie lambd na prawo i lewo to już programowanie funkcyjne, a definicja z Wiki In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data ma się do FP jak pięść do oka. Jak chcesz napisać, że do C# ficzery zostały wrzucone szybciej to napisz to wprost, a nie pisz o jakimś "lepszym planowaniu - Wibowit 2019-09-11 23:21

Pozostało 580 znaków

2019-09-12 07:25
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.

Pozostało 580 znaków

2019-09-12 10:18
28

wibowit.jpg


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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