Java czy C#?

0

Ciężko jest mi się zdecydować między Javą a C#. Co byście mi polecili na początek? Przytoczę wywód takiego jednego gościa na temat wyższości C# nad Javą:

Zależy. Pod względem opłacalności na rynku pracy Java wypada lepiej. Niemniej jak jesteś dobrym programistą C#, który ma jakiś talent i zawzięcie to też Cię wszędzie chętnie zatrudnią a z C# przejście na Javę jest niemalże bardziej lajtowe niż z C++ na C#, gdzie musisz się oduczać nawyków nieprawidłowych nabytych podczas nauki C/C++. Wiem dobrze o tym, bo pamiętam jak długo przez jakiś czas programowałem w C# i chciałem nagle coś napisać w Javie to wystarczył rzut okiem na dokumentację i wszystko poszło jak z górki. A to, że C# jest tylko pod Windowsa to jest jeden z największych błędnych mitów. Jest przecież Xamarin, ASP.NET, Unity3d, Universal Platform, Azure chociaż fakt faktem ciężko będzie Ci np. zrobić serwer ASP.NET na Linuxie czy napisać na Ubuntu aplikację pod Azure, więc ten argument może jedynie mieć takie uzasadnienie, że Microsoft dba o swój monopol i nie zamierza wspierać developmentu aplikacji C# na Linuxie czy Mac OS X (o ile się nie mylę o Apple ma swój język Swift i Objective-C).

Co sądzicie o tym? Czy to ma sens? Niby pod Linuxa jest Mono Develop ale ono jest kiepskie, więc może on i ma rację. Czy to dobry pomysł ciągnąć C# i Javę równolegle?

0

Jak Linux to Java - nawet nie ma się nad czym zastanawiać. Niby Mono wspiera C# ale są to już stare wersje języka. Używając Mono zawsze jest się w tyle za tym co wprowadza MS do platformy .NET.

0

To zdanie jest dość nie aktualne:

Microsoft dba o swój monopol i nie zamierza wspierać developmentu aplikacji C# na Linuxie czy Mac OS X

M$ coraz bardziej się otwiera, jest .NET Foundation, DNX/.NET Core. Co prawda jest to wciąż w fazie rozwoju ale za rok, dwa już myślę że spokojnie będzie można tego używać do czegoś więcej niż do zabawy.

Niby pod Linuxa jest Mono Develop ale ono jest kiepskie

Zawsze możesz zerknąć na Visual Studio Code: https://code.visualstudio.com/

4

@vscommunity hubot weź ty się może po prostu zacznij uczyć czegokolwiek?

0

Ale w co Ty konkretnie celujesz? Zadajesz tak ogólne pytanie bez podania swoich oczekiwań/celów. Zastanów się czy na początek nauki wieloplatformowość jest w ogóle Twoim nadrzędnym celem.

0

W pewnym sensie tak. Fajnie byłoby móc przenosić aplikacje między Androidem, Linuxem, Windowsem, Mac OS X, Windows Phone czy iOS-em. Chciałbym również mieć dostęp do popularnych frameworków, bibliotek i wzorców projektowych. C# ciągnę już od dłuższego czasu, ze dwa lata. Umiem posługiwać się interfejsami, klasami, strumieniami, GUI, timerami, socketami itp. W Javie mam mniejsze doświadczenie niż w C#. Chciałem się tylko zapytać czy na obecnym etapie warto przechodzić na inny język. Przerobiłem wszystkie tutoriale Unity3d i teraz jestem w trakcie wykonywania tych projektów z tutoriali. Teraz tworzę projekt o nazwie OGL oparty na ASP.NET MVC i C#.

1

MS sie otwiera ale nie nadrobi czasu blyskawicznie.

Wedlug mnie jeden czy drugi jezyk dobry. Do web net czy spring\jee. Jedno i drugie raczej spoko.

Skupilbym sie na roznicach, np. Ze java poki co jest bardziej portable, jest android. C# lepsze na desktopa, mozna gry w unity robic.

Visuals studio code na linuxie jest straszliwie biedne, sublime duzo bardziej funkcjonalne.

Hejtstop idiotycznej wojnie java vs c#...

W wolnej chwili zamierzam pouczyc sie c# jako javowiec.

1

Windows Phone jest martwe, nie ma sensu w ogóle brać tego pod uwagę.

0

Ale xamarin to dobre posuniecie.

0

Zdecydowanie lepszym jest pisanie osobno aplikacji dla Androida i iOSa.

0

Dobra, nie ma co winić Microsoftu za wolne uruchamianie VS tylko odinstalować te śmieci. Skupiam się na C# i przy nim pozostaję.

0

@vscommunity Skoro masz już dwa lata doświadczenia z .NET to moim skromnym zdaniem przejście na Jave nie ma sensu. Zamiast tego kontynuuj rozwój umiejętności C# a w ramach nauki czegoś nowego celuj w coś całkowicie odmiennego, np. język stawiający na paradgymat funkcyjny. Myśląc o wieloplatformowości również pozostań przy C# i skorzystaj z dostępnych projektów, chociażby wymieniony już Xamarin.

0
Wibowit napisał(a):

Windows Phone jest martwe, nie ma sensu w ogóle brać tego pod uwagę.

Połowa tych aplikacji i tak powinna być webowa :P

0

Mnie jakoś zawsze ta Java odpychała, zagmatwana pokręcona jak dla mnie. Natomiast C# ma ograniczenia do jednej platformy Microsoftu. Niby można pod Linux, ale wiadomo jak to jest, programy pod MonoDevelop są większe w porównaniu do VS. Do tego Apple zablokowało Jave u siebie, z C# podobnie. Ja zrezygnowałem z obu tych języków, można pod Androidem pisać w Pythonie z Qt 5.6, lub niezłe zarobki w Python-Django, Ruby-RoR.

2

Przeciez pisanie o wyzszosci c# nad java lub na odwrot to jak pisanir o wyzszosci schabowego nad kotletem...

0

Dokładnie tak jak powyżej wygladaja dyskusje java vs c# ;)

1

Ja jestem zwolennikiem Javy, ale tylko dla web. W przypadku desktopów MS dostarcza, według mnie, genialne środowisko - VS, świetnie udokumentowany język i sporą bazę gotowych, często darmowych bibliotek - chociaż to ostatnie dotyczy obu języków.

Java Forever:

0

Fajnie byłoby móc przenosić aplikacje między Androidem, Linuxem, Windowsem, Mac OS X, Windows Phone czy iOS-em.

W takim wypadku na dzień dzisiejszy najlepsze jest Qt. Np na takich linuxach( desktop ) zdecydowanie bardziej popularne rozwiązanie niż Java czy C#.

0

No to doradzi mi ktoś w końcu czego się najbardziej opłaca uczyć? A jakbym tak Javę i C# się uczył? Czy są języki lepsze od C# i Javy?

0

Pracy w Javie jest dużo, a płace w Javie też są duże. Inaczej mówiąc: jest spokój, a kasa się zgadza. C# daje nieco gorsze perspektywy, ale dużej różnicy nie ma.

0

Jak Ty zadajesz takie pytania to daruj sobie Jave bo jest za trudna, aby te pokręconą w niej obiektowość załapać. Zacznij może od javascript lub PHP to ma niski próg wejścia i szybko widać efekty pracy. Trzeba być naprawę zdolnym aby po 2 latach nauki dostać pracę w Javie i jeszcze dobrze musisz się do tego przyłożyć, załapać algorytmy. Wybierasz co chcesz pisać Android, aplikacje mobilne, czy po stronie serwera Backend. Do tego musisz wybrać framework i wersję Javy a jest tego sporo nie licząc JavaSE, JavaEE, JavaFX. Ja uważam że Java po C++ jest drugim najtrudniejszym językiem a może i go już pod tym względem przewyższa ponieważ jest tak rozbudowana że jest multum nauki. Żeby coś konkretnego samemu zrobić w Javie naprawdę potrzeba sporej wiedzy aby to działało, Jave postrzegam jako język korporacyjny nie bez powodu. Jest to typowy język skierowany na pisanie w grupach, aby szybciej tworzyć duże serwisy społecznościowe. Ale tak jak wszystko jest do ogarnięcia, potrzeba motywacji chęci, znam kolesia co po 10 latach pisania w Javie już go nudzi ten język programowania i patrzy w kierunku go i node,js. Dodam jeszcze że C# niby trochę łatwiejszy ale też kombajn z masą różnych ficzerów ukierunkowany na jedną platformę Microsoft, tak jest Unity3D wiem. Ale z tego co piszą i mówią ludzie działa to na Linux, Apple jak .... Reasumując dla leniwych i szybko chcących się wbić w programowanie i dobre zarobki, to wybrał bym Ruby on Rails lub Python, Django lub Javascript. W webie są teraz zarobków porównywalne do tych trudnych języków od których się łysieje i trzeba sporo na główkować.

0

A ja polecam Python'a, jeżeli jesteś jeszcze młody to będzie język idealny dla ciebie. Dodać do tego jeszcze znajomość linuxa i znajomość matmy i możesz pracować za gruby hajs dla google jako data scientist ;p

0

A jak jesteś stary to zostaje Ci tylko asembler i ANSI C?

0

Nie rozumiem ? Dzieciom, które mają po 6-7 lat, ze względu na swoją prostotę poleca się Scratch'a jakoś nie wyobrażam sobie dać takiemu dziecku na pierwszych zajęciach temat o zarządzaniu pamięcią w C++. Tak samo Python jest bardzo prostym językiem który można się nauczyć nie będąc jeszcze do końca rozgarniętym (czyt. młodym) i daję fajne perspektywy, może nie w Polsce, ale zdecydowanie na świecie, gdzie jest to właśnie przecież jeden z najbardziej preferowanym języków przez największe korpo.
Ludzie starej daty, niech uczą się zaczynając od dowolnego języka w końcu po tych wszystkich latach edukacji są przygotowani do przyswajania, różnej wiedzy nie zależnie od jej poziomu trudności.

0

Nie ma jak odradzac jave a polecac js na 1 jezyk. Absurd. Uwazam, ze zaczynanie od JSa to zly pomysl. Warto miec podstawy innego jezyka.

Ja z podstawami javy se uczac sie niewiele dostalem prace w javie, ktora scale nie jest trudna.

0

To czy dostaniesz pracę znając w java se, zależy chyba od szczęścia bo ja jeszcze 2.5 roku temu nie mogłem sobie z podstawami javy znajomością dobrych praktyk programowania wzorców i trochę więcej znaleźć pracy. Ale jak wyszłem z Javy SE i zacząłem kuć Jave EE dostałem pierwszą pracę (półtora roku temu)

0

Na jave jest jedno z najwiekszych zapotrzebowan wiec wedlug mnie latwo dostac prace.

0

Powiedz to pracodawcą, którzy dają zadania na staż typu "napisz aplikację restful" "napisz aplikację webową". Ale nie dziwie się, dzisiaj tak zarabiają pracodawcy na javie, pisząc takie aplikacje

0

No, teraz cos takiego robie w 30 minut.

Mialem za zadanie rekrutacyjne skonsumowac resta i operowac danymi lokalnie. Zrobilem i sie dostalem.

Nawet rok sie nie uczylem.

0

Stworzyć aplikacje w Springu też umiałem już wtedy, lecz to była wiedza typu skopiuj tu z neta wklej tutaj, nie czułem się w tym pewnie. Uznawałem, że dalsza część rozmowy kwalifikacyjnej będzie po prostu bez sensu. Dopiero po pierwszych próbach dostania się na staż zacząłem czytać o tym książki.

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