C# i Java - kiedy skorzystać z którego?

C# i Java - kiedy skorzystać z którego?
Hodor
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Warszawa
  • Postów:327
0

Mógłby mi ktoś wytłumaczyć jakie są najważniejsze różnice w zastosowaniach pomiędzy C# a Java? Chodzi mi o jakieś trywialne przykłady kiedy np. jakaś korporacja najprawdopodobniej zdecyduje się na użycie C# zamiast Javy i vice-versa.

Ja się nie znam - dlatego pytam - jedynie słyszałem coś, że C# odnajduje swoje zastosowania głównie na Windowsie, a Java wszędzie. Czy są oprócz tego jakieś inne duże różnice pomiędzy tymi językami?

Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:minuta
2

Ja się nie znam - dlatego pytam - jedynie słyszałem coś, że C# odnajduje swoje zastosowania głównie na Windowsie, a Java wszędzie. Czy są oprócz tego jakieś inne duże różnice pomiędzy tymi językami?

Podałeś główną różnicę (aczkolwiek ta niby powoli się zmniejsza przez .NET Core). Poza tym te środowiska (Java i .NET) są bardzo podobne pod względem wykorzystania. Z innych większych różnic można wymienić to, że np Java na smartfonach jeszcze nie umarła i raczej będzie się jeszcze długo trzymać (na Androidzie). Poza tym w Javie jest więcej bibliotek i frameworków co niektórych bezzasadnie przeraża.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 3x, ostatnio: Wibowit
Zobacz pozostałe 19 komentarzy
Azarien
@Wibowit: query syntax to cukier składniowy na method syntax. niektórych rzeczy nie da się zrobić w query syntax, co potem skutkuje takim potworkiem jak (from foo in foo select bar orderby bla bla bla).Baz(); czyli trzeba wziąć całe czasem długie query w nawias (albo do zmiennej) i i tak odpalić metodę…
Wibowit
Jeśli method syntax jest nadzbiorem query syntax to samo method syntax by wystarczyło.
somekind
Owszem, dlatego właśnie pisałem, że query syntax to nadmierna, nic nie wnosząca komplikacja.
Azarien
no ale miało to być takie SQLopodobne cóś które nie byłoby stringiem tylko parsowalne na poziomie języka.
Wibowit
W Scali parsowanie SQLa w czasie kompilacji jest osiągalne: http://slick.lightbend.com/doc/3.2.3/sql.html#type-checked-sql-statements (tutaj to nawet odpalane jest na bazce by porównać typy, ale nie trzeba iść tak daleko). Jest to połączenie interpolacji stringów: https://docs.scala-lang.org/overviews/core/string-interpolation.html z makrami kompilatora (a te są odpalane w czasie kompilacji): https://stackoverflow.com/q/15329027
Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 14 godzin
1

C# ma wiele mechanizmów integracji z innymi rzeczami/usługami od Microsoftu, więc jeśli firma używa Office, SharePoint, AD i tym podobnych produktów, to jest większa szansa, że wybierze C#.

Wibowit
Akurat w firmie używamy wszystkich trzech produktów od MS, ale integracji z nimi silnych nie potrzeba. Do integracji z Excelem używamy formatu CSV (bardzo prosty, ale nam w zupełności wystarczający), integracja z AD jest za pośrednictwem LDAPS, a Sharepoint niby jest ale rzadko go używamy (prawie wcale) i w ogóle się z nim nie integrujemy. W innych zespołach może być inaczej, np tych C#-owych, ale silniejsza integracja moim zdaniem wynikałaby raczej z okazji niż z potrzeby. Chociaż z drugiej strony bankowy korpobeton jest pewnie niereprezentacyjny :)
jarekr000000
My używamy apache poi w javie i excele wychodzą lepsze niż te z MS Office :-)
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 godziny
  • Postów:3609
1

Jeśli chcesz się integrować z produktami MS to C#.
W innym przypadku powinny decydować zasoby developerskie. Jak masz programistów od C# to jedziesz w C#, jak od Javy to w Javie.
Jeśli chodzi o jednoosobowe projekty to polecam jednak Javę, mimo wszystko więcej pracy w tym jest.

0

Java ma lepsze zarobki...
Pozdrawiam!!!!

SZ
  • Rejestracja:ponad 9 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Łódź
1
Wibowit napisał(a):

Ja się nie znam - dlatego pytam - jedynie słyszałem coś, że C# odnajduje swoje zastosowania głównie na Windowsie, a Java wszędzie. Czy są oprócz tego jakieś inne duże różnice pomiędzy tymi językami?

Podałeś główną różnicę (aczkolwiek ta niby powoli się zmniejsza przez .NET Core). Poza tym te środowiska (Java i .NET) są bardzo podobne pod względem wykorzystania. Z innych większych różnic można wymienić to, że np Java na smartfonach jeszcze nie umarła i raczej będzie się jeszcze długo trzymać (na Androidzie). Poza tym w Javie jest więcej bibliotek i frameworków co niektórych bezzasadnie przeraża.

Zrobiłem mały research i AI, BD, DS, IoT itp. wykorzystuje Java'ę, a C# już nie za bardzo. Zgodzisz sie?

Ktos
IoT to tak szerokie pojęcie, że wykorzystuje się tam praktycznie wszystko.
Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:minuta
1

W sumie mógłbym :) W tych dziedzinach JVM raczej konkuruje z Pythonem niż .NETem, tzn .NETa coś niespecjalnie tam widać.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

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.