• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java vs C# co lepsze ?

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
5,045 wizyt
pytanie zadane 28 września 2016 w Java przez timati Bywalec (2,060 p.)
Witam, mam pytanie dotyczące języka programowania :) wiem,ze nie jest łatwo tak komuś na odległość doradzić, ale spróbuję. Znam podstawy javy i C# i dwóch kolegów jeden programuje w javie a drugi w c# każdy z nich przekonuje mnie oczywiście do swojego języka,ale tak na prawdę z którym językiem jest lepsza przyszłość?? Jeszcze nie wiem tak do końca co chciałbym programować i to też utrudnia mi wybór. Nie chcę abyście jakoś nagminnie przekonywali do swojego języka tylko chciałbym poznać plusy i minusy każdego z nich :) z góry dziękuję za odpowiedź :)
komentarz 28 września 2016 przez Porcupine Nałogowiec (31,560 p.)
Oba
komentarz 28 września 2016 przez Avernis Nałogowiec (27,400 p.)
Uczenie się 2 języków jednocześnie to chyba nie najlepszy pomysł
komentarz 28 września 2016 przez Benek Szeryf (92,970 p.)

Uczenie się 2 języków jednocześnie to chyba nie najlepszy pomysł

Według mnie odpowiedź @Porcupine dotyczy pytania zadanego przez autora:

(...) ale tak na prawdę z którym językiem jest lepsza przyszłość?

 I nie ma nic wspólnego z poleceniem nauki dwóch języków jednocześnie.

komentarz 28 września 2016 przez MichuDev Pasjonat (20,300 p.)
Wszystko zależy co chcesz programować?

C# jest dobry pod Universal Windows platform (platforma Microsoft pod komputery, konsole XBox i inne z systemami Microsoft).

Java jest lepsza w przypadku gdy liczy się odpalenie tego na każdym systemie operacyjnym z zainstalowanym JRE.

W przypadku aplikacji serwerowych mimo, że C# też dobrze będzie działał, ale warto wziąć pod uwagę to, że całe API .NET jest tylko w systemach Windows!

6 odpowiedzi

+6 głosów
odpowiedź 12 stycznia 2017 przez Wojciech Cies Obywatel (1,140 p.)

Pozwolę sobie spróbować odpowiedzieć pobieżnie na to pytanie. Disclaimer: pracuję w zawodzie komercyjnie 14 lat. Ostatnie 11 jako programista java, wcześniej zaczynałem od PHP. Obecnie jestem architektem rozwiązań. 

W warstwie językowej java i c# są bardzo podobne. C# (jako próba - nieudana - wyrzucenia z siodła Javy przez Microsoft) jest pod pewnymi względami nawet lepszy jako język sam w sobie. Tworząc specyfikację specjaliści MS mogli wyciągać wnioski z historii Javy.

Tylko że język to nie wszystko. Microsoft nigdy nie zagroził pozycji Java dlatego, że za długo był zamknięty. Wymagał płatnych serwerów (Windows Server) - Java mogła działać na darmowych linuxach. Wymagał płatnego środowiska programistycznego. Java dzięki otwartości standardu i braku ograniczeń licencyjnych odniosła sukces dzięki ogromowi wysokiej jakości open-source'owych narzędzi praktycznie do wszystkiego. W świecie korporacji posiadających na stanie dziesiątki albo setki serwerów ogromne znaczenie (finansowe) miał to, że nie muszą płacić licencji za MS Windows Server. Mono (Xamarin) bardzo długo było wątpliwe pod znakiem prawnym (nie było klarownej sytuacji co do tego, czy Xamarin może używać opatentowanych rozwiązań MS). 

Przez to wszystko java rządzi niepodzielnie w świecie korporacyjnym. .NET działa w firmach, które kiedyś popełniły błąd stawiając na C# (mówię o zastosowaniach back-endowych, nie aplikacjach desktop) i teraz po prostu mają za dużo kodu, żeby się na cokolwiek przesiadać.

Dlatego pracy w Java jest więcej - więcej poważnego softu jest w tym napisane. Systemy bankowe (te które nie są w COBOLu ;) ), ubezpieczeniowe, systemy zarządzania sieciami telco, systemy zarządzania liniami lotniczymi (Sabre i spółka) - główną platformą w tym świecie jest Java. Dawała biznesowi tańsze środowisko (brak licencji za OS, IDE, kompilator) z lepszą bazą narzędzi/bibliotek dostępnych za darmo.

Z tego punktu widzenia lepszym wyborem z tych dwóch opcji jest Java. Jest w niej więcej softu, ciągle pisze się masę nowego, praca w tej dziedzinie będzie jeszcze 10 lat co najmniej.

Natomiast sugerowałbym rozważenie rozpoczęcie nauki od jakiegoś "lekkiego" języka typu "full-stack". Python, Ruby, Rails. Raczej nie node.js. Dlaczego?

Sam tak zaczynałem (PHP) i widzę duży zysk. W tych językach bardzo szybko zaczyna się mieć kontakt ze wszystkimi warstwami aplikacji. Łatwo napisać sobie webappkę która dotyka tak tematów front-endowych (można poćwiczyć adżaksy, dżejkuery i inne), jak i backendowych (baza danych, sposób dostępu do niej, bazy SQL czy noSQL). Mając szerokie podstawy łatwiej potem przełączyć się na język wyższego rzędu i np. implementować serwisy back-endowe wystawiające API dla klientów www pisanych w .js - po prostu więcej się rozumie. Java do pisania stron www w 2017 roku się nie nadaje :)

Miało być krótko a wyszło jak zwykle ;) Pozdrawiam

 

+3 głosów
odpowiedź 12 stycznia 2017 przez 0xf Dyskutant (8,180 p.)
Co lepsze grabie czy lopata?
1
komentarz 12 stycznia 2017 przez Michał628496 Pasjonat (17,340 p.)
Tak :P
0 głosów
odpowiedź 28 września 2016 przez Avernis Nałogowiec (27,400 p.)
Java jest multiplatformowa, a c# raczej pod windowsa (oczywiście są np. Xamarin). C# jest szybszy od javy i posiada pewne cechy języków c np preprocesory, i przestrzenie nazw. Oba języki są obiektowe i w pisaniu są całkiem podobne
komentarz 28 września 2016 przez timati Bywalec (2,060 p.)
A jak wyglada sprawa ze znalezieniem pracy ? Bo jak patrzyłem to do javy jest dwa razy więcej ofert ;/
komentarz 28 września 2016 przez Avernis Nałogowiec (27,400 p.)
To że jest 2 razy więcej ofert to nic, bo skoro możesz to stwierdzić to znaczy że znalazłeś też pod c#. Patrz na to ilę zapłacą. Możesz też spróbować oba języki, i ten który bardziej ci przypadnie
komentarz 12 stycznia 2017 przez Wojciech Cies Obywatel (1,140 p.)
Najwięcej zapłacą za COBOLa. Co nie znaczy, że przyszłościowym jest się go uczyć ;)

Softu w javie jest (i w najbliższej przyszłości będzie) znacząco więcej niż w C#. C# ma przyszłość wyłącznie jako narzędzie do pisania aplikacji wolnostojących (desktopowych). Ale to robi się nisza, jako że większość softu do praktycznie wszystkiego migruje na platformy www. Jako desktopy zostają narzędzia specjalistyczne (typu Photoshop) czy gry...
–1 głos
odpowiedź 28 września 2016 przez KubenQPL Maniak (62,820 p.)
Żaden nie jest lepszy. Mógłbyś zapytać np który lepszy do robienia programów użytkowych na Windows, wtedy c#. Lub który lepszy do aplikacji na Android, wtedy Java. Każdy język ma inne przeznaczenie i różne plusy i minusy.
–1 głos
odpowiedź 12 stycznia 2017 przez MalbolgeProgrammer Początkujący (250 p.)
edycja 12 stycznia 2017 przez MalbolgeProgrammer

Nie sądzę że powinieneś ograniczać się do jednego języka, świat języków programowania jest przecież ogromny.

Z obydwoma językami znajdziesz dość sporo ofert pracy, C# jest na pewno lepszy pod gry, ale za to Java jest multiplatformowa.
Decyzja należy do ciebie, brnij w obydwu językach dopóki się na któryś nie zdecydujesz, jeśli chcesz pracować jako programista ja osobiście wybrałbym C#.

komentarz 12 stycznia 2017 przez Wojciech Cies Obywatel (1,140 p.)
C# praktycznie nie istnieje w nowoczesnych systemach cloudowych, architekturach mikroservice'owych. A za 2-5 lata 90% softu tak będzie pisana... Słyszał ktoś o startupie, który pierwszą wersję swojego softu napisał w C#? Nie - i nie bez powodu.

IMHO C# nie ma świetlanej przyszłości. Już prędzej szedłbym w nodejs jako lekki sposób wejścia w programowanie tak backedowe jak i frontendowe.
komentarz 12 stycznia 2017 przez MalbolgeProgrammer Początkujący (250 p.)

Jakoś częściej się słyszy że to Java ma umrzeć niż C#, ale jest trochę racji w tym co napisałeś.

 

komentarz 12 stycznia 2017 przez Wojciech Cies Obywatel (1,140 p.)
"Słyszy się"? :) Ciekawe od kogo... A na poważniej - w tej branży (jak w życiu) wszystko kiedyś się kończy. Jak java miałaby umrzeć w obszarze zastosowań serwerowych/korporacyjnych, to C# w tym świecie już dawno żył nie będzie.

To, co może zagrozić javie to bardzo mocno rozproszone, potencjalnie nawet "bezserwerowe" (vide AWS lambda) architektury oparte o rzeczywiście mikrousługach pisanych w "lekkich" językach (nodejs, python). Ale takie systemy średnio się sprawdzają w zastosowaniach mniejszych czy średniej wielkości. I wymagają dość dużych kompetencji do ich ogarnięcia. Więc w korporacyjnej masówce nie spodziewałbym się zmniejszenia roli javy w ciągu następnych 5-10 lat.
komentarz 13 stycznia 2017 przez adrian17 Mentor (350,400 p.)

"Słyszy się"? :) Ciekawe od kogo...

http://arstechnica.com/information-technology/2016/07/how-oracles-business-as-usual-is-threatening-to-kill-java/

https://www.infoq.com/news/2016/12/Gartner-downgrades-Java-EE

Nie mówię że się z powyższymi zgadzam, natomiast pogłoski tego typu były dość głośne przez ostatnie pół roku.

Nie będę wróżył długoterminowo, bo być może masz rację, natomiast faktem jest, że w 2016 widziałem znacznie więcej aktywności ze strony środowiska .net.

komentarz 15 stycznia 2017 przez Wojciech Cies Obywatel (1,140 p.)
Rzeczy jakie podlinkowałeś dotyczą Java EE. Arstechnica nawet wprost pisze, że SE ma się dobrze. I tutaj się zgadzam - czasy serwerów aplikacji i "ciężkiej" Java EE minęły. Natomiast Java SE wsparta rzeczami typu FOSS Netflixa (Ribbon, Hystrix, Zuul i reszta) czy Spring-* (Spring, Spring Boot, Spring Cloud) w modelu chmurowym mieści się bardzo dobrze.
komentarz 2 marca 2017 przez adrian17 Mentor (350,400 p.)

Nie będę kwestionował wiekszości artykułu, tylko dwie rzeczy:

  • 3-4 years ago C# was by far the best (most productive, coherent, etc.) OOP language - today its advantage has already been obliterated by the unexpected rise of functional paradigm; F#? After all these years it's still a niche that has never took off.

To zdanie nie ma krztyny sensu.

VS2017 has been delayed by a year

Źródło?

–4 głosów
odpowiedź 28 września 2016 przez spamator12 Nałogowiec (28,230 p.)
java
komentarz 12 stycznia 2017 przez playerony Pasjonat (15,220 p.)
Widzę, że Pan stawia na bardziej rozbudowane mertorycznie posty, słuszna uwaga.
komentarz 12 stycznia 2017 przez spokojny Nałogowiec (28,630 p.)
komentarz 12 stycznia 2017 przez Wojciech Cies Obywatel (1,140 p.)
Scala IMHO nie jest dobra do rozpoczynania nauki. Za dużo magii się tam dzieje od samego początku. Jest ciekawą opcją dla doświadczonych programistów do zwiększenia efektywności pracy.
komentarz 9 lutego 2017 przez spamator12 Nałogowiec (28,230 p.)
lol  -4 :) Heh to moze inaczej co jest lepsze BMW czy Mercedes? Bo jeden z kolegow jezdzi BMW i mowi ze lepszy, a drugi Mercedes i mowi, ze mercedes lepszy :)
komentarz 10 lutego 2017 przez spokojny Nałogowiec (28,630 p.)
To nie jest forum motoryzacyjne jak już zauważyłeś.
komentarz 1 marca 2017 przez spamator12 Nałogowiec (28,230 p.)
Jak nie zauwazyles to byla aluzja do pytania ala maslo czy margaryna.

Podobne pytania

0 głosów
5 odpowiedzi 3,922 wizyt
pytanie zadane 20 lipca 2015 w Java przez NTXFN Gaduła (3,430 p.)
0 głosów
1 odpowiedź 207 wizyt
0 głosów
1 odpowiedź 4,051 wizyt
pytanie zadane 29 lipca 2016 w C# przez niezalogowany

93,157 zapytań

142,171 odpowiedzi

321,878 komentarzy

62,486 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 224p. - Marcin Putra
  2. 224p. - nidomika
  3. 223p. - dia-Chann
  4. 221p. - ssynowiec
  5. 217p. - Mikbac
  6. 216p. - CC PL
  7. 215p. - Łukasz Piwowar
  8. 212p. - zmmz89
  9. 210p. - Adrian Wieprzkowicz
  10. 208p. - rafalszastok
  11. 206p. - Michal Drewniak
  12. 204p. - Łukasz Eckert
  13. 202p. - rucin93
  14. 200p. - robwarsz
  15. 198p. - TheLukaszNs
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...