Java czy C#

0

Witam, chciałbym przeczytać jakieś konstruktywne opinie na temat Javy i C#. Większość artykułów, jakie czytałem, mówi, że C# jest nowocześniejszy, lepiej zaprojektowany od Javy, ale z drugiej strony wydaje mi się, że w Javie społeczność jest większa, jest więcej materiałów w internecie i ogólnie więcej się dzieje. Jak to w końcu jest?

1

Java w wersji script :-)

0

Większość tego typu tematów albo schodziła na off-topic, albo kończyła się bezmyślnym wychwalaniem jednego języka. Po prostu miałem nadzieję, że choć raz będzie inaczej.

0

Ja bym wybrał Jave w wersji Script, ponieważ nie jest tak ociężała i jest mniej opasła. Dlaczego NSA jest tak bardzo zainteresowana JVM, w chipsetach intela jest jak by taki ukryty podsystem napisany w Javie i JVM. O C# to nawet nie wspomnę kilkanaście GB trzeba pobrać wraz z Visual Studio, aby móc programować pod Windows, nie chce nawet wiedzieć co tam siedzi. Oczywiście nie posiadam w systemie JVM i C#, używam IDE napisanych w Pythonie, JavaScript i C?C++.

6

tak naprawde nie ciagnie cie do programowania skoro jeszcze zadnego z nich sie nie nauczyles :(

0

Java nie ma LINQ, a więc C#.

0

Mirek Zelent mówił, że najlepiej zaczynać od C++ bo to taka łacina wśród języków programowania.

0

A co chcesz robić? ;) W czym czujesz się silny, jak się dzisiaj spało?

1
GN napisał(a):

Mirek Zelent mówił, że najlepiej zaczynać od C++ bo to taka łacina wśród języków programowania.

Szkoda tylko, że to podwórkowa łacina.

0

Mirek Zelent mówił, że najlepiej zaczynać od C++ bo to taka łacina wśród języków programowania.

Aż przetarłem oczy ze zdziwienia. Jeżeli naprawdę tak powiedział to znaczy, że automatycznie dokonał samozaorania.

0

Oczywiście na 4p jak zawsze trolling na wysokim poziomie.

0

Bo nie ma dobrej odpowiedzi na to pytanie. Kwestia preferencji. Ja na przykład jak zobaczyłem C# to wiedziałem, że to jest język dla mnie.

3

Mówienie, że maszyna wirtualna(JVM/CLR) jest najlepsza bo działa na każdym systemie. Jest jak mówienie, że seks analny jest najlepszy bo działa na każdej płci.

1
Zimny Orzeł napisał(a):

Witam, chciałbym przeczytać jakieś konstruktywne opinie na temat Javy i C#.

Nie ma czegoś takiego jak konstruktywna opinia. Konstruktywna może być wypowiedź albo krytyka.
Opinia może być pozytywna albo negatywna. Jaką chcesz przeczytać i o czym? ;)

Większość artykułów, jakie czytałem, mówi, że C# jest nowocześniejszy, lepiej zaprojektowany od Javy

C# jest młodszy od Javy, ma więcej ficzerów wbudowanych w język, przy czym część z nic jest nowoczesna (inferencja typów, asynchroniczność, elementy programowania funkcyjnego), a część służy do wsparcia starodawnego kodu (dynamiczny system typów, ręczne zarządzanie pamięcią).
Tylko, że liczba ficzerów wbudowanych w język ma tę wadę, że jest trudniejszy do nauki, bo trzeba poznać więcej słów kluczowych i idiomów.

ale z drugiej strony wydaje mi się, że w Javie społeczność jest większa, jest więcej materiałów w internecie

To prawda. Java jest starsza, więc ma większą społeczność.

ogólnie więcej się dzieje. Jak to w końcu jest?

No to zależy jak definiować "więcej". Np. .NET ostatnio mocno odseparowuje się od Microsoftu. Z kolei Oracle otworzył Javę EE.
No to już każdy może sam ocenić, co tu jest większym postępem. ;)

Jak chcesz coś konstruktywnego poczytać, to skup się na faktach, np.: https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java

3

Od C# odstrasza mnie związek z firmą której polityka, lekko mówiąc, mi się nie podoba.

0

@somekind: gdzieś widziałem, jak krytykowałeś C# za zmiany w ostatnich wersjach, które komplikują język, ale z drugiej strony ludzie mówią, że C# jest lepiej zaprojektowany niż Java. Jak to w końcu z tym jest?

0

dużo znajomych zdecydowanie woli C# i mówi, że bardziej intuicyjny

ja zaczynałam programować w C#, ale nie czułam się w nim dobrze, później wracając do programowania uczyłam się javy pdostaw i zdecydowanie wole i lepiej czuję się w Javie.
tak więc zacznij uczyć się podstaw programowania i nie patrz na jezyk są podobne, pisz programiki i w c# i w javie i sam zobaczysz w czym lepiej się czujesz.

jesli chodzi o biznes to więcej pracy i lepsze stawki w javie

3

Bo od początku był zaprojektowany lepiej, czyli pozwalał na pisanie bardziej zwięzłego kodu bez dodatkowych narzędzi, których wymaga Java (i które też zaśmiecają kod, tylko mniej) i bez takiego boilerplatu. Do tego ma spójny system typów i jawną wirtualizację.

A później przyszły dobre zmiany i złe zmiany.
Dobre to np.: inferencja typów, async/await, interpolacja stringów, nameof, Pattern Matching, dekomponowalne krotki.
Złe to: using static czy 20 słów kluczowych będących wrapperami na metody z LINQ
Są też rzeczy niby dobre, ale wprowadzające bałagan: skrócony zapis jednolinijkowych metod i właściwości albo dynamic.

0
GN napisał(a):

Mirek Zelent mówił, że najlepiej zaczynać od C++ bo to taka łacina wśród języków programowania.

Czyli że to język wymarły, którym powinni zajmować się tylko pasjonaci?

0

Pomost między procesorem, a językiem jest wąski, wystarczy wszystkie podstawowe bajtcody przetłumaczyć na danej architektury kod, który zwiększy swoją objętość lub zostanie stały w przypadku np. ARM.

I masz uniwersalny język dla każdego procesora, czego ci więcej trzeba, C# i Java robią praktycznie to samo, ale mają po swojemu formatowanie tekstu, podświetlanie funkcji, kolory tak mocno wpływają na subiektywne odczucia, że ich przez to nie posiadamy...

1

Ja tam wole Jave, skladnia jest najpiekniejsza na swiecie. C# na razie nie zamierzam tykac odpycha mnie to na jakim systemie dziala. Znienawidzilem Windowsa odkad zainstalowalem linuxa.

0

Ponoć składnia Kotlin, Ceylon i Scala jest jeszcze piękniejsza od Javowej. Ewentualnie Swift do którego szukam IDE. Kiedy się doczekam IDE napisanego w Rust czy Swift :(

0

Java też się rozwija, tyle że wolniej, z większym namysłem. C# już teraz jest tak napakowany ficzerami, ze trzeba studia skończyć żeby go opanować :D

Oprócz języka ważne są też narzędzia. Do Javy jest najlepsze IDE na świecie, czyli IntelliJ IDEA od firmy JetBrains. Co prawda ta firma produkuje też nakładkę na Visual Studio, czyli Resharpera, ale takie połączenie podobno mocno zamula.

C#-owcy cierpią też na syndrom sztokholmski, bo uważają metody niewirtualne za dar niebios. Chyba tęsknią za wyzwaniami z C++a.
Z racji słabego JITa (w kwestii optymalizacji) w .NETu do tej pory istnieją senior C# programmerzy, którzy mają dylemat czy użyć List czy IList, czy użyć foreach czy może iterować sobie jak w starożytnym C, a przede wszystkim czy użyć słówka virtual czy może będzie zbyt kosztowne.

0

Ale czy słusznie jest porównywać język kontaktujący się bezpośrednio ze sprzętem z językiem opartym na wirtualnej maszynie?

0

Przecież powstają dobre IDE napisane w językach skryptowych: Atom, VSC, Brackets, Sublime, Spyder, NinjaIDE, EricIDE. Te napisane w Javie też nie są takie idealne, zamulacze typu Eclipse, Aptana, Netbeans, czy wiecznie indeksujący Intellij. Nie pochwale też tych napisanych w C++, ponieważ są ubogie jak na IDE, czyli KDEvelop, QT-Creator, CodeBlocks.

0

wiecznie indeksujący Intellij

Coś czuję, że to wina jakichś nadgorliwych antywirusów lub czegoś podobnie działającego. U mnie w pracy IntelliJ też w kółko indeksuje, ale jak używam IntelliJa w domu (na Ubuntu) to indeksowanie jest tylko po upgradzie samego IDE albo wtyczek.

Przecież powstają dobre IDE napisane w językach skryptowych

To zabawki w porównaniu do tych napisanych w Javie co wymieniłeś.

2

nie ma co dyskutowac o javie (jako jezyku) vs c# bo nie ma za bardzo czego porownywac, c# jest po prostu nowoczesniejszy i przyjazniejszy dla programisty.
na dobra sprawe java ma tylko lepszy wybor vm :)

0

Uważam, że czegoś się nauczyliśmy przez ostatnie 15 lat i czas powoli przechodzić na rozwiązania bardziej nowoczesne, zbudowane na bazie doświadczeń z poprzednimi językami. Kotlin nie jest jedynym takim przypadkiem, bo jest też Swift, Dart, Rust oraz pewnie parę więcej i jeśli im się przyjrzeć, to można zauważyć, że wszystkie wprowadzają dość podobne rozwiązania, np. to wsparcie dla nulli, funkcyjne przetwarzanie kolekcji, czy async/await. Ba, starsze języki próbują adoptować te same rozwiązania. To pokazuje, że się rozwijamy, odkrywamy "poprawniejsze" podejście do inżynierii oprogramowania - podobnie, jak kiedyś odkryliśmy obiektówkę. Java i C# niestety są już przestarzałymi językami programowania, nie wspierają nulli.

0
Wielki Mors napisał(a):

Java i C# niestety są już przestarzałymi językami programowania, nie wspierają nulli.

No właśnie problem z tym, że wspierają nulle aż za bardzo.
Chociaż w następnej wersji C# to się mocno zmieni: https://blogs.msdn.microsoft.com/dotnet/2017/11/15/nullable-reference-types-in-csharp/

0

Uważam, że czegoś się nauczyliśmy przez ostatnie 15 lat i czas powoli przechodzić na rozwiązania bardziej nowoczesne, zbudowane na bazie doświadczeń z poprzednimi językami. Kotlin nie jest jedynym takim przypadkiem, bo jest też Swift, Dart, Rust oraz pewnie parę więcej

Kotlin jest nową lepszą Javą, podobnie jak C# miał być nową lepszą Javą. Dart to niewypał - popularność zdobył TypeScript. Rust nie jest konkurencją dla Javy, C#, Pythona, JavaScripta, etc Rust jest konkurencją dla C++ (i ewentualnie Swifta czy Go) - zobaczymy czy uda mu się go pokonać.

JavaScript jest porażką - o ile niektórzy mogą się podniecać prototypowym dziedziczeniem, to jednak dla kogoś kto okazyjnie dłubie w JSie osobliwe zachowanie JSa mocno ogranicza efektywność programowania. Nie wygląda jednak na to, byśmy w przewidywalnej przyszłości pozbyli się JSa i zastąpili go czymś bardziej podobnym do reszty.

Czasami wyparcie języka jest bardzo trudne, niezależnie od tego jak słabo był zaprojektowany. PHP też nadal trzyma się mocno i nawet podobno (z wersji na wersję) robi się po trochę bardziej cywilizowany.

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