Jak wybrać pomiędzy Java i C#

3

Wiem, że sam temat wiadomości jest niepoważny i że o tym już nie raz było na forum (owszem, czytałem co nieco)... ale o co mi chodzi.
PHP mnie już znudziło, chciałbym wziąć się za coś innego i obrać jakiś kierunek.
Technologie, które mnie interesują to Java i C#. I tak się zastanawiam, co wybrać.
Nie chcę pytać Was co powinienem wybrać, chodzi o co innego.

Czym się przy wyborze kierować. Ktoś na forum radził, żeby napisać w tym i w tym coś. Napisałem kilka bardzo prostych programów i w zasadzie to nie widzę różnic pomiędzy tymi językami, poza składniowymi szczegółami.

Czytałem kilka wątków i co już wiem:

  • C# wykorzystuje się do pisania na windowsa tylko (co mi nie przeszkadza)
  • Java to 90% web i appki biznesowe, pozostała robota to Android
  • C# jest bardziej nowoczesnym, lepiej zaprojektowanym językiem
  • w Javie jest więcej pracy, szczególnie na południu polski (śląsk, małopolskie - czyli moje okolice).
  • C# jest częściej wykorzystywany do desktopu
  • itd. a ja niewiele wiem :D

Robiłem wstępny resarch i C# wydaje się mniej przytłaczający - a może się mylę? Java ma tyle frameworków, że nie wiadomo czego się uczyć.

Nie pytam w czym jest lepsza kasa i co jest bardziej przyszłościowe.

Raczej:

  • w czym pisze się wygodniej, co jest lepiej przyswajalne na początek, w czym łatwiej się odnaleźć i w czym szybciej można kodzić fajne rzeczy, w czym jest więcej/są lepsze materiały do nauki/tutoriale, w czym jest więcej fajnych projektów open-source gdzie można dołączyć?

Ludzie piszą, że C# jest lepiej zaprojektowany, że platforma .NET jest bardzie nowoczesna, że rozwiązania MS są fajne, przyjemne i bardziej przystępne. Jak to jest z Javą? Jest troszkę starsza od C#. To nadal język w którym warto zaczynać (zakładając, że się nic nie umie ponad tego PHPa)? No i w są ciekawsze/fajniejsze (nie lepiej płatne) oferty pracy/stażów?

Oba języki/technologie wydają się być fajne. Pozostaje poczytać opinie ludzi lepiej zorientowanych w temacie.... albo rzucić monetą :D

0

Napisałem kilka bardzo prostych programów i w zasadzie to nie widzę różnic pomiędzy tymi językami, poza składniowymi szczegółami.

To nie pisz hello-worlda tylko poswiec na to troche czasu. Zobacz jak wygladaja Javowe technologie i te C#-owe. Ktore bardziej do Ciebie przemawiaja, etc.

rozwiązania MS są fajne, przyjemne i bardziej przystępne

Tak, to prawda. Niesamowicie przyjemne jest korzystanie z ASP.NET MVC czy chociazby EF+Linq.

To nadal język w którym warto zaczynać?

Java nie umiera na razie, wiec jak sie chce to warto.

2

Robiłem wstępny resarch i C# wydaje się mniej przytłaczający - a może się mylę? Java ma tyle frameworków, że nie wiadomo czego się uczyć.

Weź dowolny sensowny i wyrzeźb jakiś program. Nie trzeba znać wielu frameworków by zacząć pracę jako junior - ja idąc na staż do Comarchu praktycznie żadnego nie znałem, no chyba że liczyć Swinga jako framework ( :p ). Przede wszystkim musisz ogarniać język i trochę też maszynę wirtualną i jej sposób działania - np działanie classloadera, odśmiecacza, kompilacji w locie (just-in-time compiling), itd Do tego przyda się umiejętność pisania testowalnego (i pokrytego testami) kodu, profilowania, debugowania. Poza tym zamiast znać wiele frameworków, na początek lepiej poznać ich cele i schemat działania, czyli np zamiast zagłębiać się jak działa Spring IoC bo jest w ofertach pracy to poczytać o wstrzykiwaniu zależności, kiedy go używać, do czego może się przydać, etc

Stawiam flaszkę, że do PHP jest względnie mało frameworków głównie dlatego, że umiejętność pisania reużywalnego kodu u PHPowców raczkuje, a u Javowców jest prawie wymuszana - nie licząc reużywalności metodą Kopiego-Pejsta. Innym powodem może być też to, że PHP to jest kitchen sink i wbudowane w niego jest masa randomowych funkcji, natomiast w Javie jest dość oszczędnie jeśli chodzi o funkcje pomocnicze w bibliotece standardowej.

0
MyCat napisał(a):
  • C# wykorzystuje się do pisania na windowsa tylko (co mi nie przeszkadza)

C# to w 90% aplikacje webowe dla biznesu, reszta to desktop.

w czym jest więcej fajnych projektów open-source gdzie można dołączyć?

Więcej na pewno jest w Javie. Nie wiem tylko, czy bazowanie na ilości ma jakiś sens w takim przypadku.

0

chciałem zakładać nowy wątek, ale wpadłem tutaj. i właściwie to dalej mam dylemat - czy iść w c# czy w javę.
amatorsko pisałem i w jednym i w drugim, preferencji osobistych nie mam, oba języki wygodne, ani oracle ani microsoft mi nie przeszkadza, możliwości obu języków podobne, zastosowania tez...

to czym byscie sie kierowali przy wyborze jakby przyszło wam na nowo wybierać technologie?

w javie niby więcej ofert pracy, ale to tez głównie wielkie korpo. przeglądając oferty pracy mam wrażenie, ze wiecej malych firm pakuje sie w c# i .net co w sumie byloby mi na plus, bo chyba lepiej startowac w malej firmie niz w korpo.

jak to jest z frameworkami w c#? poza .net czegoś sie jeszcze używa tak na codzien w firmach?

w javie jak już tutaj było wspomniane, sporo tego jest. ja na razie w swingu sobie cos tam dlubie, ale do okienek to c# wygodniejszy jest.

jak tak ludzie na forum piszą i jak się przegląda oferty pracy, to mam wrażenie, ze na javowca trzeba sporo wiecej rzeczy na początek kumac niz do c#. wiadomo znajomość jezyka można pominąć, ale mowie o frameworkach itp. bo w ogłoszeniach o c# zwykle chcą znajomość c#, baz danych i ew. gita, jak na juniora rekrutują. a w javie to chca springa, hibernate i EE na dokladke.

apropos, nie macie wrażenie, ze w c# jest więcej tzw. 'ciekawych' ofert? przy jakis nowatorskich projektach, dla mniejszych firm itp bo jak tak przeglądam oferty dla javy to prawie zawsze to samo, wielkie korpo, JEE

PS spotkaliscie się kiedys z ofertami dla Juniora ZDALNIE w javie/c#? (nie w php i htmlu)

0
hasztag napisał(a):

jak to jest z frameworkami w c#? poza .net czegoś sie jeszcze używa tak na codzien w firmach?

Całej masy zewnętrznych bibliotek: loggerów, ORMów, kontenerów IoC, kontrolek GUI. W ogłoszeniach często jest napisane, co jest wymagane, a w każdym razie dobrze znać jakiś.

jak tak ludzie na forum piszą i jak się przegląda oferty pracy, to mam wrażenie, ze na javowca trzeba sporo wiecej rzeczy na początek kumac niz do c#. wiadomo znajomość jezyka można pominąć, ale mowie o frameworkach itp. bo w ogłoszeniach o c# zwykle chcą znajomość c#, baz danych i ew. gita, jak na juniora rekrutują. a w javie to chca springa, hibernate i EE na dokladke.

A dla C# chcą Windsora, NUnit, WCF i EF lub NHibernate. ;)

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