Java czy C# do fullstack developera?

Java czy C# do fullstack developera?
ID
  • Rejestracja:prawie 9 lat
  • Ostatnio:około rok
  • Postów:54
1

Hej, po wielu latach siedzenia we froncie chce sie zaczac rozwijac w kierunku backendu/fullstacku, i mam wybor pomiedzy tymi technologii. Jakie maja wady i zalety? Czy ktoras z nich jest mocniejsza/bardziej wymagana na rynku?

edytowany 2x, ostatnio: Ideaman
ZP
Java i c# to dwie strony tej samej monety. Są bardzo podobne. Jak dla mnie to c# bardziej spełnia zasadę najmniejszego zaskoczenia. Ale generalnie język to mały pikuś. Duży pikuś to tzw ekosystem, czyli tule, społeczność, przykłady, materiały itp itd.
ID
@zimna pitulka: Wlasnie o ekosystemy mi chodziło, jezyka moge sie nauczyc, pytanie w jakim otoczeniu bede go stosować. Na szczeście w niżej juz wszystko wyjaśnili.
RequiredNickname
Kotlin :) lub może node skoro pewnie nasz js?
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 2 godziny
  • Postów:6656
5

Ja bym brał C#. Jak dla mnie, ma niższy próg wejścia. Już na start Visual Studio dużo ułatwia. Właściwie nie musisz tam nic konfigurować, po prostu tworzysz nowy projekt i działasz. Masz framework, jakąś bazę danych i lokalny serwer zapewnione przez IDE. A "jedyna słuszna dokumentacja" wprowadzi Cię do technologii, których chcesz używać.
W Javie trzeba trochę bardziej podrążyć, przynajmniej na początku.


🕹️⌨️🖥️🖱️🎮
edytowany 2x, ostatnio: Spine
biela_
  • Rejestracja:ponad 8 lat
  • Ostatnio:2 miesiące
  • Lokalizacja:WPR
  • Postów:135
2

Wydaje mi się że java popularniejsza ale jak już pisali konfiguracja tego to męka :) jak już projekt hula to spoko, ale stawiać od nowa to zawsze jest zabawa

AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
1

Java i c# to dwie strony tej samej monety. Są bardzo podobne. Jak dla mnie to c# bardziej spełnia zasadę najmniejszego zaskoczenia. Ale generalnie język to mały pikuś. Duży pikuś to tzw ekosystem, czyli tule, społeczność, przykłady, materiały itp itd. - zimna pitulka dziś, 06:34

biela_ napisał(a):

Wydaje mi się że java popularniejsza ale jak już pisali konfiguracja tego to męka :) jak już projekt hula to spoko, ale stawiać od nowa to zawsze jest zabawa

Ekosystem Javy w mojej opinii jest bardziej "demokratyczny", tzn w praktycznie każdym obszarze jest wielość konkurencyjnych architektur, implementacji itd... (pominę pseudo-monopol Springa). Dla mnie ta wielość to zaleta, ale wierzę, że dla kogoś może być wadą.
Jak kiedyś będziesz chciał wychylić głowę poza web-backend, może to być zaletą.

Język C# jest o 10 lat nowszy, więc podczas jego tworzenia powstała nowocześniejsza koncepcja (np propertiesy wyrażone wprost, a nie przez konwencję, i inne rzeczy). Wady też ma, np powstanie Frameworka stricte pod Windows, dopiero "wersja 2.0" czyli Core jest przenośne do spodu.


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 2x, ostatnio: AnyKtokolwiek
99xmarcin
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:2420
9

Jako że pisałem .NET/ASP MVC -> Java/Spring -> .NET Core -> Scala to się wypowiem:

.NET i Java to dwa zupełnie różne podejścia. .NET stawia na out-of-the-box, M$ dostarczy Ci wszystko: IDE, ORM, CI Server, framework webowy, system buildu (MSBuild). Jeżeli piszesz CRUDa lub przeciętną apkę biznesową to przekonasz się że jest o wiele prościej zacząć. Java z drugiej strony stawia na otwartość, prawie wszystko jest w co najmniej dwóch wersjach zaczynając od systemu buildu: Gradle i Maven, ORM: Hibernate lub MyBatis, nawet framework do kolekcji (listy, zbiory) nie jest jeden tylko: Standardowy, od Googla (Guava), Vavr i Eclipse Collections. Inny przykład to domyślna pula wątków w .NET'cie jest jedna globalna, która sama się reguluje ty tylko Task.Start(() => robota()) i zrobione. W javie jest co prawda pula globalna (ForkJoinPool) ale wszyscy i tak sobie robią własne lokalne pule za pomocą Executors.newXXX(). Kolejna opcja to tuning, prawie nigdy nie zdarzyło mi się tunować GC w .NET'cie (choć ma takie same pauzy jak ten w Javie BTW) za to w Javie tego nie unikniesz trzeba znać przynajmniej pobieżnie przełączniki JVM'a, samych algorytmów GC też jest co najmniej 5. M$ ostatnio prawie całe API przepisał na async, jeżeli przesiadasz się z TypeScript'u to może być to dla Ciebie znajome, w Javie jesteś zmuszony używać Rx/Reactor (choć są ambitne plany wprowadzenia green-threadów - project loom).

Jeżeli chodzi o modną ostatnio chmurę to wydaje się że Java ma tutaj przewagę. Dużo infry chmurowej (Kafka, Zookeeper, Spark, Hadoop, ElasticSearch, Cassandra) jest w Javie, teraz się to zmienia na korzyść Go. Generalnie jak chcesz pisać mikroserwisy w dużej skali to Java ma lepsze frameworki i klientów do wspomnianych komponentów.

Jeżeli chodzi o same języki programowania, Java to stary język i często ssie, sporo ludzi eksperymentuje teraz z Kotlinem, jeżeli zaczynasz naukę i wybierzesz JVM'a to radzę poważnie spojrzeć na ten język programowania od JetBrains. Podstawowy problem JVM'a to brak wsparcia prawdziwych typów generycznych, zamiast tego jak komilujesz List<Integer> to dostajesz pod spodem List<Object>,
w praktyce nie sprawia to aż tak dużych problemów ale wymaga przyzwyczajenia. C# jest jednym z najlepszych języków w których pisałem, miejsca ustępuje tylko Rocket/Scheme :D Zarówno w przypadku C# (VisualStudio, VSCode) jak i Javy (IntelliJ, Eclipse) IDE w wersji "community" są dostępne za darmo. Eclipse jest całkowicie za darmo i można go używać do tworzenia komercyjnych projektów.

Generalnie nie zgadzam się że setup projektu w Javie trwa dłużej, trzeba używać generatorów najprostszy to gradle init --type java-application lub https://start.spring.io/ Ogólnie naukę springa zaczyna się od sciągnięcia apki demo PetProject i rozpoczęcia hackowania.

Ogólnie proste i przeciętne aplikacje biznesowe lepiej się piszę w .NET'cie. Skomplikowane systemy (Amazon) to raczej domena Javy.

Ostatnia ważna rzecz: jeżeli jesteś fanem Linuxa lub Mac'a to wybierz Javę, mniej problemów będzie po drodze. Co prawda .NET Core chodzi na wszystkim ale już VisualStudio i toole GUI np. Azure Service Bus Explorer już nie. Wybierając .NET jesteś defacto przykuty do Windy - dla mnie to był deal-breaker, pracuje teraz na mac'u a na domowym PC mam Linux'a - do Windy wracać nie zamierzam.

Podsumowując, w przeciwieństwie do tego co niektóre firmy sądzą na rekrutacjach obie platformy są do siebie bardzo podobne, Mid'owi nie powinno zająć dłużej niż 3 msc przestawienie się z jednej na drugą a kod biznesowy (a więc w bebechach aplikacji) zapewne jest w stanie zmieniać od pierwszego dnia. Rozejrzyj się po lokalnym rynku pracy w Wawie ofert z Javy więcej, wydaje mi się że we Wrocku i Krk jest na odwrót.


Holy sh*t, with every month serenityos.org gets better & better...
edytowany 1x, ostatnio: 99xmarcin
ZP
Zgoda. Przy pewnym stopniu wtajemniczenia przejście na c#/java jest na zasadzie, a to tak tu się robi
WeiXiao
Wybierając .NET jesteś defacto przykuty do Windy - dla mnie to był deal-breaker, pracuje teraz na mac'u a na domowym PC mam Linux'a - do Windy wracać nie zamierzam. bynajmniej, ludzie siedzą na Riderze na Macu / Linuxach.
AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
2
0xmarcin napisał(a):

Jako że pisałem .NET/ASP MVC -> Java/Spring -> .NET Core -> Scala to się wypowiem:

Java z drugiej strony stawia na otwartość, prawie wszystko jest w co najmniej dwóch wersjach ... , ORM: Hibernate lub MyBatis,

Uprościłeś. Pierwszy poziom: JPA / non JPA.
JPA ma 2-3 istotne implementacje (w tym Hibernate - ja lubię Eclipselink) i kilka fikuśnych (np zintegrowanych nad bazą obiektową itd)
non-JPA to blisko 5-10 istotnych dla rynku bibliotek

Jeżeli chodzi o same języki programowania, Java to stary język i często ssie, sporo ludzi eksperymentuje teraz z Kotlinem, jeżeli zaczynasz naukę i wybierzesz JVM'a to radzę poważnie spojrzeć na ten język programowania od JetBrains.

Myśl o Kotlinie popieram.
Powiedzmy wyraźnie: to język JVM, czyli w olbrzymim stopniu kompatybilny z Javą.
To ten sam wybór w sensie tego wątku. Można wystartować z Javą i przemieszczać się do Kotlina

PS. Wzmiankujesz o IDE JetBrains IntelliJ Community oraz Eclipse.
Jeszcze jest Netbeans, wydaje mi się bardziej ceniony od Eclipse (a na pewno krócej się go "urabia" pod siebie), i zawiera za darmo elementy niedostępne w "Community"


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 2x, ostatnio: AnyKtokolwiek
Robakowy
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:48
1

Idź w Jave.
Ja siedzę w .Net i widzę, że ofert pracy jest połowa tego co na Jave.
A to przekłada się na szanse otrzymania większej pensji.

Gdybym zaczynał od 0, wybrałbym Jave.

Zobacz pozostałe 7 komentarzy
BraVolt
30 min. albo 1 h, 30 minut nie jest tak rzadko spotykane
SA
@BraVolt: imho to co opisałeś to definicja wyjątkowo nieelastycznego czasu pracy. To juz lepiej zaczynać o 8 i mieć kodeksową przerwę.
SA
Teraz chociaż wiem żeby uważać na taki frazes w ogłoszeniach
BraVolt
@Saalin: Tylko zacytowałem, bo "dziwnym przypadkiem" ta oferta utkwiła mi w pamięci ;)
somekind
Nie rozumiem w czym problem, .NET 2.0 był świetny.
Michał Kuliński
  • Rejestracja:około 8 lat
  • Ostatnio:10 miesięcy
  • Postów:74
1

Nie ma znaczenia.

AK
Cytuj, na co opowiadasz, bo nie wiadomo, o co chodzi
Michał Kuliński
Jeżeli nie cytuję to dla mnie oczywistę, że to odpowiedź na główny post.
AK
być moze dla Ciebie ...
KR
KR
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:5
0

Co ma wieksza przyszlosc typescript czy kotlin? Nie chce uczyc sie jaw nie lubie ich.

RequiredNickname
Pytanie z kategorii co jest lepsze młotek czy śrubokręt ...
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 2 godziny
  • Postów:6656
2

"Większą" przyszłość mają języki, które powstaną po kotlinie i typescript, a także języki, które powstały przed nimi :]


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
Zobacz pozostałe 4 komentarze
KR
Krolik pisal ze go to bardzo ubogi jezyk w stosunku do rusta i ma dziwna skladnie. Nie nadaje sie do pisania systemow, przegladarek, silnikow gier poniewaz ma gc. Sam nie wiem do czego ten jezyk go powstal.
AK
" java moze dlugo przetrwac ale microsoft stworzyl typescript i tworzy nowy jezyk verona. - Kreciarz_ 9 minut temu" Nie chwytam logiki tego zdania. Poswtaje dziesiątki języków - i co z tego wynika?
KR
to ze microsoft ma kase na wypromowanie jezyka, bardziej niz mozilla rusta?
BraVolt
Podlinkowanie: Kreciarz_ napisał(a): > moja firma wygrała przetarg na oprogramowanie lotnicze, będziemy przepisywać soft z samolotów F-22, F-35 ze starego C++ na Rust.
KR
i co w tym dziwnego? na forum zalenta nie moge miec konta?
AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
0
Kreciarz_ napisał(a):

Co ma wieksza przyszlosc typescript czy kotlin? Nie chce uczyc sie jaw nie lubie ich.

To są zupełnie nieporównywalne języki.
Zależy co w życiu chcesz

BTW co do użycia liczby mnogiej "nie lubię jaw" tzn że niewiele wiesz. Obie, tj Java i "Java w wersji Script" to zupełnie inne języki i tylko klamerki { } mają podobne


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
KR
nieporownywalem ich tylko pytalem ktory ma wieksza przyszlosc? Google moze porzuci kotlina jak powstanie fuchsia os i zostanie dart i go.
KR
KR
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:5
0

Ale ja ich nieporownywalem do czego sie je stosuje, tylko pytalem o ich przyszlosc w stosunku do pracy i plac.

AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
0

nieporownywalem ich tylko pytalem ktory ma wieksza przyszlosc? Google moze porzuci kotlina jak powstanie fuchsia os i zostanie dart i go. - Kreciarz_ 2 minuty temu

Nie da się tak "oszczędzać" nauki, żeby uczyć się TYLKO tego co w sposób zagwarantowny ma przyszłość.

Co więcej, w procesie edukacji niejeden język tzreba "zmarnować" tzn nauczyć się i nie pracować w nim komercyjnie. To jest trening myślenia w różnych paradygmatach, szeroki horyzont itd... Coś zupełnie odwrotne do "nie lubienia obu Jaw" (dla mnie klapki na oczach)

W tym sensie Kotlin da Ci rozwój, to bardzo ciekawy język.


Bo C to najlepszy język, każdy uczeń ci to powie
KR
KR
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:5
0

Ale google moze porzucic kotlina jak powstanie fuchsia os. Dlatego nie promuja juz nawet swojego go tylko dart i flutter. Ba, malo tego dart z flutterem ma byc wykorzystany do pisania aplikacji okienkowych na chromium os i unixa. Canonical tez to rozwiazanie promuje.
https://bulldogjob.pl/news/1185-flutter-dostepny-do-tworzenia-apek-na-linuksie

RequiredNickname
Co ma porzucenie kotlina (języka) do fuchsia os (system)? Ty uważasz, że kotlin to tylko g**no apki na androidzie? 0_o
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
0
AnyKtokolwiek napisał(a):

Nie da się tak "oszczędzać" nauki, żeby uczyć się TYLKO tego co w sposób zagwarantowny ma przyszłość.

Jeden wyjątek. Jedna firma i jej ekosystem. Apple

Objective-C
First appeared 1984
** 36 years ago**

Jego następca
Swift
First appeared June 2, 2014;
6 years ago

Nie znam żadnego programisty Apple który by marudził jak mu źle, nudno, mało zarabia itd
*OK może się maskują i pochlipują po kątach kiedy nikt nie widzi ;)
*


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
KR
Jezyk swift nie nadaje sie do pisania systemow tak jak rust. On jest stworzony tylko do aplikacji, ale apple dalo duuupy bo nie wstawili mu gc i trzeba recznie przydzielac pamiec jak w objective c. Pod tym wzgledem kotlin jest latwiejszy.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:28 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
3


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
BraVolt
Jedyny wybór: Scala Johansson :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.