Dzisiaj zadałem pytanie dotyczące tego, który język C # lub Java byłby dla mnie lepszy do nauki. Miałem świetne odpowiedzi. Jedną z rzeczy, które pojawiły się, było to, że być może Java jest teraz za C # z nowymi funkcjami. Zobaczyłem kilka linków i najbardziej wskazałem, co C # miał, a czego java nie.
Więc moje pytanie do was wszystkich brzmi: czy Java ponownie dogoni C #? A jeśli zgadniesz, co by to było za 5 lat. Czy miałoby to wszystko, czego może teraz brakuje? Co powiesz na Javę 7?
)
„dziękuję”.Odpowiedzi:
Funkcje językowe są bardzo małą częścią tego, co sprawia, że Java i C # tyka. Ostatecznie są to części większych ekosystemów J2EE i .NET.
Oba mają swoje mocne strony i powinny wzrosnąć w ciągu najbliższych 5 lat.
źródło
Powiedziałbym tak, dopóki Oracle nie pojawi się na zdjęciu. Co jest smutne, ponieważ naprawdę podobało mi się przeskakiwanie w funkcjach Java i C # przez ostatnie sześć lat.
źródło
Jako język nie rozwijam języka Java w celu znacznego zwiększenia innowacyjności, przede wszystkim dlatego, że osoby ze społeczności open source, które są w czołówce, częściej skupiają się na nowszych językach JVM, takich jak Scala, Clojure, Groovy, JRuby i JPython.
Ponadto zaangażowanie Javy w kompatybilność wsteczną oznacza, że dodawanie funkcji językowych jest z natury trudniejsze niż we wcześniejszych czasach tego języka.
źródło
Dużym znakiem zapytania jest tutaj Oracle. Firma Sun naprawdę spowolniła rozwój Java w ciągu ostatnich pół dekady. Wielu ludzi ze społeczności Java miało nadzieję, że Sun wyłączy Jawę lub sprzeda ją komuś, kto włoży dużo zasobów i wysiłku. Chociaż Oracle z pewnością może to zrobić, jest to duża firma z wieloma grupami o własnych interesach. Sądzę, że to tylko przypuszczenie, że Oracle pozwoli stagnacji Javy i wykorzysta ją głównie jako narzędzie w procesach patentowych.
Być może sprzedadzą go Google za dużą sumę pieniędzy i wszyscy będą zadowoleni. Jest w rękach zarządu i prawników, a nie inżynierów i projektantów oprogramowania.
Z drugiej strony Java, nawet bez ulepszeń, jest dobrym językiem i ma ładny ekosystem. Podczas gdy ja osobiście wolę C # i świat .net, Java jest nadal doskonałym wyborem. W przyszłości czas pokaże, ale jak na razie Java nie jest wcale taka zła. (Wyłączono biblioteki daty i godziny ... wow, czy są one zawsze brzydkie i nieporządne)
źródło
Nie ma nic do nadrobienia, więc pytanie nie ma sensu.
Tylko dlatego, że Java nie replikuje C # nie oznacza, że jest „gorsza” w jakiś sposób, jest po prostu inna. Równie dobrze można zapytać, kiedy C # „dogoni” Cobola.
źródło
Pytanie o to, czy C # lub Java wyprzedzają drugie, jest przedmiotem debaty, ale zamiast skupiać się na cechach językowych jednego lub drugiego, wolałbym skupić się na tym, co wiąże się z ewolucją języka. Jest jeden fakt, który nie wydaje mi się, aby ktokolwiek mógł się kłócić: Java jest starsza niż C #.
Problemy ze zmianą sposobu działania języka:
Czy C # ma więcej funkcji językowych niż Java? Chyba tak. Czy są przydatne? Chyba tak. Czy to oznacza, że C # jest lepszy lub bardziej dojrzały niż Java? Z czym się nie zgadzam. Są różne, jasne i proste. Java nigdy nie będzie miała wszystkich funkcji języka C #, ponieważ C # nigdy nie będzie mieć wszystkich funkcji języka Java.
Jedna z funkcji Java, możliwość napisania programu w systemie Windows i wdrożenia go w systemach Unix lub Mac, nigdy nie nastąpi bezpośrednio dzięki wsparciu Microsoft. Dlaczego pytasz? Nie dlatego, że Microsoft jest zły (czy to prawda, czy nie, nie obchodzi mnie to). Dzieje się tak dlatego, że nauczyli się lekcji, której Sun nigdy nie zrobił: pisanie raz uruchomione w dowolnym miejscu utowarowuje systemy operacyjne i sprzęt. Jeśli zależy Ci na zarabianiu na sprzedaży twojego systemu operacyjnego, nie chcesz, aby wymiana była wciąż łatwa i nadal działała aplikacja. Jeśli to zrobisz, nie możesz zarobić na systemie operacyjnym, ponieważ zawsze są tańsze opcje.
źródło
Java naprawdę nie potrzebuje nowych „funkcji” bardziej niż C lub C ++. Jest to dobrze zaprojektowany język do programowania obiektowego. Dodatki, które można wprowadzić, to tworzenie bibliotek do wykonywania szerokiego zakresu zadań. To samo dotyczy C # - większość funkcji jest dodawana, aby język robił więcej rzeczy. Osobiście uważam, że większość z tych funkcji nie jest potrzebna - wskaźniki w OO naprawdę są tak puszyste, chyba że pracujesz na poziomie sprzętowym (w tym momencie prawdopodobnie lepiej jest użyć czegoś takiego jak C). Poza tym uruchomienie na maszynie wirtualnej powinno utrudnić, a nawet uniemożliwić bezpośredni dostęp do sprzętu.
Unix rozpoczął trend tworzenia modułów, które robią jedną rzecz bardzo dobrze. Myślę, że zarówno Java, jak i C # wymykają się spod kontroli pełzania funkcji. Lepiej jest stworzyć łatwo rozszerzalny rdzeń niż gigantyczny, „uniwersalny” język, który bardziej przypomina strukturę. Dla mnie Java lepiej spełnia ten wymóg niż C #.
źródło
Nie ma nic złego w wielu funkcjach dodawanych przez C #, ale biorąc pod uwagę tempo, w jakim zmieniają język, świadomie utrudniają, jeśli nie niemożliwe, utrzymanie Mono. Jeśli tak, to mówię, że czekamy na C #, aby dogonić Javę pod względem zakresu systemów, w których może ona zostać wdrożona. Nie wystarczy po prostu uruchomić w systemie Windows.
źródło
Nie zamierzam zakładać forum dyskusyjnego, ale myślę, że Java była tutaj na długo przed C # i pod tym względem C # wydaje się bardziej replikacją niż java.
Jeśli chodzi o odpowiedź na pytanie: Java i C # są różnymi językami, dlatego nie można ich porównywać tylko według ich funkcji. Co możesz zrobić w Javie, nie możesz w C # i na odwrót.
Wreszcie jest to jak rozpoczęcie tematu Windows vs Linux.
źródło