Co jest przyjemniejsze i szybsze do nauki Twoim zdaniem?
C# znam słabo ale technologie są podobne i myśle że czas oraz frajda porównywalna.
Mogę się wypowiedzieć z perspektywy programisty C#, który musiał napisać aplikację desktopową w Javie. A więc tak C# wydaje mi się "nowszą" wersją Javy. Jest bardziej usystematyzowany, spójny. Ogólnie oba języki zawierają podobne cechy, choć w C# wydają się one IMO bardziej oczywiste i bardziej dopracowane (m.in. typy generyczne oraz refleksja).
Java w aplikacjach desktopowych praktycznie nie istnieje i nie warto się tym sugerować.
Ja wybrałem Javę bo dla mnie była bardziej otwarta i niezależna od platformy.
Spróbuj obu - tylko do javy intelij sobie spróbuj, a do c# vs2015 z resharperem.
Pixello napisał(a):
do c# vs2015 z resharperem.
Raczej niestety tylko to pierwsze, bo ReSharper jest płatny.
C# jest dużo bardziej rozwinięty (ostatnio słyszałem Javowców zachwycającymi się lambdami w nowej Javie 8 :D) i ma sporo lepsze IDE. Java ma więcej bibliotek i łatwiej znaleźć gotowe rozwiązania przez popularność.
Zaczynałem od Javy, obecnie 2 lata doświadczenia komercyjnego w C# i nie wyobrażam sobie powrotu.
https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
Ja zaczynałem od C# (desktopy, ASP.net etc.), robiłem zlecenia, swoje i cudze prace mgr i lic. Potem musiałem nauczyć się Javy i od ok 6 lat zawodowo kodzę głównie w Javie.
Moje zdanie jest takie, że .net ma dużo pożytecznych fajnych rzeczy które są łatwe i spójne bo jest jeden autor, jednak na poziomie języka można narobić sporo bałaganu w projekcie, np klasa w dwóch plikach, inna nazwa pliku i klasy, ten sam pakiet w kilku katalogach. Nie wiem jak teraz, ale irytowało mnie ile rzeczy trzeba było wyklikać by coś ustawić.
Java jest sprawdzonym multiplatformowym językiem, ma dużo ficzerów i podoba mi się podział na proste aplikacje SE i enterprise czego .net nie ma. Wiadomo java też ma wady, przenośność nie zawsze działa dobrze, czasami dokumentacja JavaDoc wygląda bardzo topornie, itp . Różne komponenty/biblioteki mają różnych autorów co ma wady (różny poziom dokumentacji, jakości itp) i zalety bo jeden problem ma wiele rozwiązań.
W obu językach trzeba mieć dobre środowisko (IntelliJ/VS) by sprawnie się poruszać zawodowo, w javie jest większy wybór bo mamy Eclipse, NetBeans i InteliJ.
Jeżeli chodzi o naukę to zależy czy chodzi o podstawy programowania czy krok dalej. Ja bym wybrał C# na desktop i Javę na jakieś webowe rzeczy. Generalnie teraz więcej pracy jest w rzeczach związanych z siecią i tutaj ja widzę więcej projektów z Javą.
@sarin dlaczego C# .net rzadziej się używa do web? i jeśli chodzi o wyżej przez Ciebie wspomniany etap "krok dalej" to co jest lepsze, przyjemniejsze, bardziej intuicyjne do nauki Twoim zdaniem?
Co tak wszyscy zachwalacie IntelliJ? lepsze niż Eclipse?
Moim zdaniem, jest to kwestia gustu. Nie chce mi się pisać elaboratu na ten temat i robić shitstormu :). Jeden i drugi wybór jest ok, choć ja osobiście wolę Javę i znam ją trochę lepiej, niż C#, więc też tę technologię bym polecił, ale to tylko moje zdanie.
Dla mnie C# a Java to udręka. Dla Ciebie - spróbuj obu i sam oceń. To bardzo subiektywne.
AreQrm napisał(a):
Dla mnie C# a Java to udręka. Dla Ciebie - spróbuj obu i sam oceń. To bardzo subiektywne.
W jaki sposób jeden może być ok a drugi udręka, skoro te języki są do siebie tak podobne? Ze względu na IDE?...
Maskarada napisał(a):
@sarin dlaczego C# .net rzadziej się używa do web?
Prawdopodobnie dlatego, że środowiska webowe częściej uruchamiane są na darmowych platformach Unix/Linux niż licencjonowanych Windows. Skala problemu była tak duża, że nawet Microsoft to zauważył i przepisał wszystko, żeby się uruchamiało na wszystkich platformach (obecnie od roku dostępne jest środowisko testowe, a stabilna pordukcyjna wersja spodziewana jest w ciągu kilku miesięcy).
pisze w obu od paru lat i nie widze sposobu aby obiektywnie stwierdzic ktory jezyk jest przyjemniejszy i szybszy do nauki. imo warto umiec oba, na poczatek jednak wybralabym c# bo zarowno jezyk jak i goly framework sa lepiej zaprojektowane niz javowy.
Warto przejść 2-3 tutoriale w obu językach i zdecydować. Warto też spojrzeć na średnie zarobki i ilość ofert pracy. W mojej okolicy w .net praca jest głównie w janusz softach i oczywiście gorzej płatna :) Dużo uczelni kładzie nacisk na .net bo kadra ma złe doświadczenia z pierwszymi wersjami javy oraz mają umowy partnerskie z microsoftem. IMHO Dzięki temu na rynku jest większy niedobór Javovców.
Jestem głównie fanbojem javo-ecosystemu :D ale kiedyś zdarzyło mi się pobawić C# jakiś czas i moje spostrzeżenia są takie:
- łatwiejszy start jeśli chodzi o frameworki do niego
- sam język ma troche wiecej fajnych konstrukcji w stosunku do javy
- jako że microsoft źle mi sie kojarzy.. (chociaż windowsa używam, obłudnik..) C# też :)
Myślałem, że będzie fajnie ale Java mimo swojego wyższego progu wejścia wydała mi się ciekawsza ;) poświęć troche na oba i sam stwierdź. Wiem, że możesz pomyśleć, że szkoda czasu oba sprawdzać, ale zapomnij o tej myśli i sprawdź
Maskarada napisał(a):
@sarin dlaczego C# .net rzadziej się używa do web?
Ale co to znaczy "rzadziej". Zapewne istnieje więcej aplikacji w Javie niż w .NET, bo Java jest jednak kilka lat starsza. Ale web to i tak obecnie 90% rynku w obu technologiach.
Wybitny Orzeł napisał(a):
W jaki sposób jeden może być ok a drugi udręka, skoro te języki są do siebie tak podobne? Ze względu na IDE?...
Między nimi tak naprawdę jest więcej różnic niż podobieństw, w szczególności C# ma dużo więcej cukru składniowego.
Krwawy Orzeł napisał(a):
Prawdopodobnie dlatego, że środowiska webowe częściej uruchamiane są na darmowych platformach Unix/Linux niż licencjonowanych Windows.
To nie jest akurat problem, bo większość softu powstaje dla korpo, a dla nich licencje na Windowsa to nie jest problem.
somekind napisał(a):
Krwawy Orzeł napisał(a):
Prawdopodobnie dlatego, że środowiska webowe częściej uruchamiane są na darmowych platformach Unix/Linux niż licencjonowanych Windows.
To nie jest akurat problem, bo większość softu powstaje dla korpo, a dla nich licencje na Windowsa to nie jest problem.
Tak, ale jak się zaczyna klepać drobne rzeczy to patrzy się na koszty. Potem przechodzisz do korpo, a przyzwyczajenia zostają.
Tak, ale jak się zaczyna klepać drobne rzeczy to patrzy się na koszty. Potem przechodzisz do korpo, a przyzwyczajenia zostają.
No to jest w takim razie argument na rzecz .NET - tu przynajmniej masz darmowe Visual Studio Express, a dla Javy? Smutny NetBeans i jeszcze smutniejszy Eclipse... Są jakieś korpo korzystające z tych smutków? Chyba raczej wszyscy poważni pracodawcy wybierają Ideę...
Krwawy Orzeł napisał(a):
Tak, ale jak się zaczyna klepać drobne rzeczy to patrzy się na koszty. Potem przechodzisz do korpo, a przyzwyczajenia zostają.
Ale na jakie koszty? Programista nie potrzebuje żadnych licencji na windowsowe serwery, żeby odpalać napisany przez siebie kod.
Netbeans przestal zamulac z ktoras wersja.
To co Java czy C#?
Jak chcesz front end i backend to ani C# ani Java.
Jak masz jakąś praktykę w C, C++ to C#.
Jak chcesz brać się za aplikacje desktopowe, to C#.
Jak wolisz Windows od UNIX (nie tyle Linux ale koropracyjny UNIX np Solaris itp) to C#.
Jak chcesz pracować w nudnej korporacji nad projektami utrzymywanymi latami to JavaEE.
Jak mobile, to iOS czy Android? A jak już Android, to i tak niekoniecznie Java. Google robi wszystko żeby się od Oracle Java odciąć.
Jak pytasz gdzie najwyższy próg na początek dla juniorów to oczywiście JavaEE ;)
Jak interesuje cię solidna kasa to JavaEE z całą resztą.
BTW, na ludzi ze znajomością Java w zakresie i na poziomie jaką dają uniwersytety nie ma wcale zapotrzebowania.
IMVHO Każdy inny wybór będzie lepszym wyborem.
To zalezy od tego kto jakie IDE lubi. ;)
A tak na powaznie to jedno i drugie to samo zlo ;)
Nie wiem jak C#, ale Java jest przyjemnym językiem i szybko się go uczy.
To oczywiście może zależeć od indywidualnych upodobań i sposobie rozumienia pewnych zagadnień.
Jak porównujesz C# do Javy to raczej będzie podobna prędkość i stopień trudności (mogę się mylić - w C# nie piszę).
Niektórym np. pewnie łatwiej się nauczyć takiej Scali czy innego funkcyjnego języka.
mariusz_s napisał(a):
Niektórym np. pewnie łatwiej się nauczyć takiej Scali czy innego funkcyjnego języka.
Watpie.
kodzę w javie :) napisał(a):
Jak chcesz front end i backend to ani C# ani Java.
Scala daje radę na frontendzie i backendzie, a Java jest niezłym wstępem do Scali.
Jak masz jakąś praktykę w C, C++ to C#.
C# ma tyle wspólnego z C i C++ co Java, czyli bardzo niewiele.
Jak chcesz brać się za aplikacje desktopowe, to C#.
Niech będzie, choć C# ma tutaj praktycznie te same wady co Java: powolny start aplikacji, podobna charakterystyka użycia pamięci (GC), nawet chyba nieco większe lagi spowodowane GC (jest tam jakikolwiek low-pause GC?).
Jak wolisz Windows od UNIX (nie tyle Linux ale koropracyjny UNIX np Solaris itp) to C#.
Jak chcesz pracować w nudnej korporacji nad projektami utrzymywanymi latami to JavaEE.
Jak mobile, to iOS czy Android? A jak już Android, to i tak niekoniecznie Java. Google robi wszystko żeby się od Oracle Java odciąć.
Mógłbyś rozwinąć? Nawet jeśli użyjesz czegoś takiego jak Kotlin, to to w zasadzie też jest Java.
Jak pytasz gdzie najwyższy próg na początek dla juniorów to oczywiście JavaEE ;)
Jak interesuje cię solidna kasa to JavaEE z całą resztą.
Polemizowałbym. Kiedyś robiłem w JavaEE, a teraz robię w zwykłej Javie. Teraz kasa jest dużo lepsza, a robota ciekawsza :P
BTW, na ludzi ze znajomością Java w zakresie i na poziomie jaką dają uniwersytety nie ma wcale zapotrzebowania.
Zależy jakie uniwersytety i jakich konkretnie ludzi. Między absolwentami są czasami różnice umiejętności i wiedzy na poziomie 10x. Niestety ci o poziomie 10x są natychmiast zgarniani z rynku jeszcze w trakcie studiów, często przez takie firmy jak Google czy Apple.
C#. Uczyłem się kiedyś Javy i swego czasu nienawidziłem C#. Jak przyszło do robienia pierwszego projektu w C# (przesiadka z Delphi), to hejtowałem dalej. A potem zacząłem uczyć się tego C# i okazało się, że to całkiem przyjemny język.
A jest sens uczyć się C# jeżeli wiem, że nigdy nie będę miał Windowsa?
C# jest microsoftu , a cokolwiek związanego z microsoftem to męką :)