Mógłby mi ktoś przypomnieć dlaczego wybrałem .Net a nie Jave?

2

Tak jak w temacie 🤷🏼‍♂️

3

Dyskutowanie o tym dlaczego wybrało się .NET zamiast Javy jest jak dyskutowanie o tym czy lepszy rak jądra czy też rak macicy.

5

Bo ktoś nazmyślał, że .NET to Java done right.

0

Ufff. Na szczęście ja ślubów nie składałem i robię w czym idzie ...

1

@Visual Code: może dlatego, że Filipiak nie jest Twoim ojcem?
W czym sie programuje w CERN

1

Nie martw się, jeszcze nie wszystko stracone - jeszcze Ci zrobią niespodziankę i wrzucą do Javy "bo to podobne" :D

0

Bo chciałeś zarabiać, ale koledzy kodzili w Javie to chciałeś być oryginalny :D

0

Pisałem trochę w C# i Javie i bardziej spodobała mi się składnia języka C#. W tamtych latach Stream w Javie nie był taki popularny, a raczej w ogóle go nie było, gdzie C# miał już Linq a sama Java kojarzyła mi się z pisaniem XML'i do ORM'ow. W Javie było mi trudno znaleźć jakieś sensowne tuttoriale. To na co natrafiałem to albo pisanie XML'i albo oblepianie modelu adnotacjami ze Springa. Jedno co mnie denerwuje w C# to Omnisharp. Ciągle jakieś bugi są, kiedy wychodzi nowa wersja dotnet'a.

0

C# jest za free :D :D

1

Częstujcie się: https://adoptopenjdk.net/releases.html
Płacić nie trzeba.

0

Noz jak mozna byc takim piwniczakiem by tego nie wiedziec? Pasuje posluchac/poczytac co sie dzieje na swiecie. Java - Oracle cos mowi? To juz wiesz dlaczego dobrze zrobiles? :)

0

Visual C++ też ma płatne wersje. Wstrętny Microsoft.

A do robienia okienek w C# trzeba kupić Windowsa. No chyba, że ktoś zdecyduje się być wiecznym beta-testerem Mono.

Tak naprawdę to to, że Oracle nie wystawia binarek niewiele zmienia, bo i tak wiele dystrybucji Linuska wprowadza jakieś własne patche do Javy. .NET Core często się krzaczy na Linuksach, a oficjalnie jest wspierany tylko na kilku dystrybucjach w kilku wersjach. Mam przeczucie, że to że Oracle przerzuciło budowanie Javy na społeczność Javy jest plusem. Zamiast być na łasce Oracle'a, budowaniem i patchowaniem Javy pod różnorakie systemy zajmują się ludzie, którzy zajmują się tego typu zadaniami na co dzień.

0

@Wibowit:

A do robienia okienek w C# trzeba kupić Windowsa. No chyba, że ktoś zdecyduje się być wiecznym beta-testerem Mono.

a do pisania kodu trzeba komputer, who would've thought? :)

.NET Core często się krzaczy na Linuksach

Nigdy jeszcze, przez prawie rok dość intensywnego użytkowania nie zdarzyło mi się jakieś "wykraczenie" apki Corowej na Linuxie. Jakieś przykłady? bo aż jestem ciekaw.

0

Nigdy jeszcze, przez prawie rok dość intensywnego użytkowania nie zdarzyło mi się jakieś "wykraczenie" apki Corowej na Linuxie. Jakieś przykłady? bo aż jestem ciekaw.

Ale jakie chcesz przykłady? Jak bawiłem się Core w wersji 2 na Ubuntu chyba jeszcze wtedy to owszem. Chodziło to jak krew z nosa, i odpalenie terminalowego projekciku robiącego Console.WriteLine("asdf"); zajmowało ze 4 sekundy. W trakcie napotkałem na kilka problemów różnej maści, i kilka braków chęci współpracy. Po czym doszedłem do wniosku, że szkoda mi życia na kopanie się z tą technologią, i wybrałem lepszą do swojego problemu :P

0

a do pisania kodu trzeba komputer, who would've thought? :)

Dokładnie. Oracle zmusza do kupowania kompa. A można by przecież pisać w Javie na kartce.

Nigdy jeszcze, przez prawie rok dość intensywnego użytkowania nie zdarzyło mi się jakieś "wykraczenie" apki Corowej na Linuxie. Jakieś przykłady? bo aż jestem ciekaw.

Krzaczenie w sensie instalacja na jakiejś niewspieranej oficjalnie dystrybucji lub wersji, co wymaga szukania brakujących pakietów, dorabiania konfiguracji, etc ZTCP to nawet tutaj na forum ktoś narzekał, że .NET Core mu się nie chce poprawnie zainstalować na Linuksie (aktualizacja: o i nawet ktoś się znalazł :) ).

Z Javą natomiast sytuacja zmierza w kierunku instalowania Javy z repozytorium, zamiast szukania Oracle'owych binarek gdzieś na stronach Oracle'a. sudo apt install openjdk-11 i gotowe.

0

@Hispano-Suiza:

No przykładów na to "krzaczenie się", a przez krzaczenie ja osobiście rozumiem, że coś się wywala / raz działa, raz nie, itd.

W trakcie napotkałem na kilka problemów różnej maści, i kilka braków chęci współpracy.

To chyba wolałbym abyś o nich coś wspomniał, a nie, że Ci się konsolówka 4 sekundy budowała :P

@Wibowit:

Krzaczenie w sensie instalacja na jakiejś niewspieranej oficjalnie dystrybucji lub wersji, co wymaga szukania brakujących pakietów, dorabiania konfiguracji, etc ZTCP to nawet tutaj na forum ktoś narzekał, że .NET Core mu się nie chce poprawnie zainstalować na Linuksie (aktualizacja: o i nawet ktoś się znalazł :) ).

O kurczę, czyli ta niedyskretna sugestia "wspierane" "niewspierane" jednak po coś jest umieszczana? :D

Teraz to ja dostrzegam te poważne problemy dotnet cora, bo jak to może coś nie działać lub wymagać "zrobienia sobie samemu" na niewspieranej wersji :D

1

Z Javą nie miałem takich problemów. Rozpakowuję ZIPa i zawsze działa.

Ostatnio też .NET Core psuł mi aktualizacje w Ubuntu. Musiałem odznaczać .NET Core przez jakiś czas bo MS coś nabroił w swoich repozytoriach i APT zgłaszał błąd. Ogólnie nie bardzo widzę jak podejście MS miałoby być jakościowo lepsze od podejścia Oracle'a i społeczności Javy.

0

@Wibowit:

Najwidoczniej różnica nie wiem 15? 20? lat ma jakiś wpływ na ilość dystrybucji Linuxa obsługiwanych przez Cora

0
WeiXiao napisał(a):

@Hispano-Suiza:

No przykładów na to "krzaczenie się", a przez krzaczenie ja osobiście rozumiem, że coś się wywala / raz działa, raz nie, itd.

Bo tak dokładnie było. Zaczynałem od Core w wersjach 1.0. Żeby było zabawniej na Windows. Niewiele tam chciało działać. Dumne zapowiedzi Microsoftu, że to jest super nowość, i tak należy teraz tego używać na nic jak się później okazało. Do dziś pamiętam wpis na jednej z grupy facebookowych gdzie gość siedzący w .NET od 2004 roku nie był w stanie odpalić projektu w ASP (Core). A ja się sobie dziwiłem, że coś ze mną nie tak skoro nie mogę :-)

W trakcie napotkałem na kilka problemów różnej maści, i kilka braków chęci współpracy.

To chyba wolałbym abyś o nich coś wspomniał, a nie, że Ci się konsolówka 4 sekundy budowała :P

Nie pamiętam teraz błędów, które wtedy mnie zasypywały ale pamiętam, że spędzałem godziny żeby wyszukać podobne problemy wraz z ich rozwiązaniami. Po 4 dniach takich zabaw zwyczajnie dałem sobie z tym święty spokój. Jedną z rzeczy, które pamiętam to notoryczne wypieprzanie katalogu obj z projektu albo pliku *.csproj. Po każdym zamknięciu, i otworzeniu VSCode wszystkie moje projekty były wysypane, i wtyczka chciała coś tam odbudowywać za każdym razem.

Tak się składa, że to co pisałem wymagało tworzenia nowych projektów dotnet new za każdą nową funkcjonalnością. Więc w momencie gdy miałem 30 katalogów, i każdy świecił na czerwono zacząłem tracić cierpliwość.
Jak już @Wibowit wspomniał. W Javie nigdy nie miałem tego typu problemów. Owszem miałem inne ale tamte były zrozumiałe, a tu zwyczajnie całe środowisko było skopane, i to długi czas.

0

Wracając do tematu kosztów: po co ktoś miałby płacić Oracle'owi za Javę, skoro binarki ma za free na https://adoptopenjdk.net/releases.html albo wprost w repozytoriach ulubionej dystrybucji Linuksa?

2

A do robienia okienek w C# trzeba kupić Windowsa. No chyba, że ktoś zdecyduje się być wiecznym beta-testerem Mono.

Chodziło to jak krew z nosa, i odpalenie terminalowego projekciku robiącego Console.WriteLine("asdf"); zajmowało ze 4 sekundy.

Krzaczenie w sensie instalacja na jakiejś niewspieranej oficjalnie dystrybucji lub wersji

Ostatnio też .NET Core psuł mi aktualizacje w Ubuntu. Musiałem odznaczać .NET Core przez jakiś czas bo MS coś nabroił w swoich repozytoriach i APT zgłaszał błąd. Ogólnie nie bardzo widzę jak podejście MS miałoby być jakościowo lepsze od podejścia Oracle'a i społeczności Javy.

ak się składa, że to co pisałem wymagało tworzenia nowych projektów dotnet new za każdą nową funkcjonalnością. Więc w momencie gdy miałem 30 katalogów, i każdy świecił na czerwono zacząłem tracić cierpliwość.

Ale się uśmiałem :D

0
Hispano-Suiza napisał(a):

W Javie nigdy nie miałem tego typu problemów. Owszem miałem inne ale tamte były zrozumiałe, a tu zwyczajnie całe środowisko było skopane, i to długi czas.

Pytanie, czy jesteś wystarczająco stary, żeby móc na podstawie swojego doświadczenia stwierdzić, czy tego typu problemy istniały w Javie?
Żeby nie było - nie twierdzę, że Java miała problemy, ani nie bronię .NET Core.

0

Na siłę pewnie da się napisać coś szybciej lub ewentualnie nieco wolniej od Javy, ale kto tak pisze na co dzień. Zwłaszcza że niektóre biblioteki potrafią ostro szorować po refleksji.

1

W tych benchmarkach to raczej zamiast refleksji jest arytmetyka wskaźników w C#. Javowy kod natomiast jest taki dość zwykły - nie ma wskaźników, żadnego Unsafe, pamięci alokowanej poza stertą obiektów (czyli nie ma alokowania tablic czy obiektów na stosie czy ogólnie poza Javową stertą), compiler intrinsic, itd

To czego w tych benchmarkach nie ma praktycznie w ogóle (niezależnie od języka) to kodu OOP. Te klasy co tam są działają jak zwykłe struktury - nie ma żadnych hierarchii dziedziczenia, interfejsów, polimorfizmu itd

Generalnie żeby osiągnąć wydajność taką jak w tych benchmarkach trzeba pisać w takim stylu jak w tych benchmarkach (I'm Captain Obvious). Można też tę relację odwrócić - odsiać warianty kodu, napisanych w stylu, którego nie używamy w kodzie produkcyjnym i sprawdzić wydajność pozostałych.

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