Heute habe ich eine Frage gestellt, welche Sprache C # oder Java besser für mich ist, um zu lernen. Ich hatte einige großartige Antworten. Eine Sache, die auftauchte, war, dass Java vielleicht jetzt eher hinter C # mit neuen Funktionen steckt. Ich sah einige Weblinks und die meisten wiesen darauf hin, was C # hatte und was Java nicht hatte.
Meine Frage an Sie alle lautet also: Wird Java C # wieder einholen? Und wenn Sie raten würden, wo es in 5 Jahren stehen würde. Hätte es all die Dinge, die jetzt vielleicht fehlen? Wie wäre es mit Java 7?
)
's zu verunreinigen , vielen Dank.Antworten:
Sprachfunktionen sind nur ein sehr kleiner Teil dessen, was Java und C # zum Ticken bringt. Letztendlich sind dies Teile größerer J2EE- und .NET-Ökosysteme.
Beide haben ihre eigenen Stärken und sollten in den nächsten 5 Jahren größer werden.
quelle
Ich hätte ja gesagt, bis Oracle ins Bild kam. Das ist traurig, denn ich habe es wirklich genossen, die Features, die Java und C # in den letzten sechs Jahren hatten, zu erweitern.
quelle
Als Sprache erweitere ich Java nicht, um Innovationen in nennenswertem Umfang hinzuzufügen, vor allem, weil diejenigen in der Open-Source-Community, die auf dem neuesten Stand sind, sich eher auf die neueren JVM-Sprachen konzentrieren, wie Scala, Clojure, Groovy, JRuby und JPython.
Außerdem bedeutet Javas Engagement für die Abwärtskompatibilität, dass das Hinzufügen von Sprachfunktionen von Natur aus schwieriger ist als in den früheren Tagen der Sprache.
quelle
Das große Fragezeichen hier ist Oracle. Sun hat Java in den letzten etwa einem halben Jahrzehnt erheblich gebremst. Die Hoffnung vieler in der Java-Community war, dass Sun Java ausgliedern oder an jemanden verkaufen würde, der viele Ressourcen und Anstrengungen aufbringen würde. Oracle könnte das sicherlich, aber es ist ein großes Unternehmen mit vielen Gruppen mit eigenen Interessen. Ich vermute, und es ist nur eine Vermutung, dass Oracle Java stagnieren lässt und es hauptsächlich als Instrument für Patentstreitigkeiten verwendet.
Vielleicht verkaufen sie es für einen großen Geldbetrag an Google und alle sind glücklich. Es ist in den Händen von Vorstandsetagen und Anwälten, nicht von Ingenieuren und Software-Designern.
Auf der anderen Seite ist Java auch ohne Verbesserungen eine gute Sprache und hat ein gutes Ökosystem. Ich persönlich bevorzuge C # und die .net-Welt, aber Java ist immer noch eine gute Wahl. Die Zeit wird es zeigen, aber Java ist noch gar nicht so schlecht. (Datums- und Zeitbibliotheken ausgeschlossen ... wow, sind die immer hässlich und chaotisch)
quelle
Es gibt nichts, mit dem man aufholen könnte, daher ergibt die Frage keinen Sinn.
Nur weil Java C # nicht exakt repliziert, heißt das noch lange nicht, dass es in irgendeiner Weise "minderwertig" ist. Es ist einfach anders. Könnte auch fragen, wann C # Cobol "einholen" wird.
quelle
Die Frage, ob C # oder Java der anderen überlegen ist, steht zur Debatte, aber anstatt mich auf die Sprachmerkmale der einen oder anderen Sprache zu konzentrieren, möchte ich mich lieber darauf konzentrieren, was mit der Weiterentwicklung einer Sprache zu tun hat. Das ist eine Tatsache, mit der sich wohl niemand auseinandersetzen wird: Java ist älter als C #.
Probleme beim Ändern der Funktionsweise einer Sprache:
Hat C # mehr Sprachfunktionen als Java? Ich glaube schon. Sind sie nützlich Ich glaube schon. Bedeutet das, dass C # besser oder ausgereifter als Java ist? Dem stimme ich nicht zu. Sie sind schlicht und einfach verschieden. Java wird niemals alle Funktionen von C # haben, da C # niemals alle Funktionen von Java haben wird.
Eine der Funktionen von Java, die Fähigkeit, ein Programm unter Windows zu schreiben und auf Unix oder Mac zu implementieren, wird von der Microsoft-Unterstützung niemals direkt ausgeführt. Warum fragst du? Es liegt nicht daran, dass Microsoft böse ist (ob das stimmt oder nicht, ist mir eigentlich egal). Das liegt daran, dass sie eine Lektion gelernt haben, die Sun noch nie gelernt hat: Einmaliges Schreiben an einer beliebigen Stelle macht die Betriebssysteme und die Hardware zu einer Ware. Wenn Sie daran interessiert sind, mit dem Verkauf Ihres Betriebssystems Geld zu verdienen, möchten Sie nicht, dass es trivial ist, das Betriebssystem auszutauschen und immer noch eine Anwendung zu haben. Wenn Sie das getan haben, können Sie mit dem Betriebssystem keinen Gewinn erzielen, da es immer billigere Optionen gibt.
quelle
Java benötigt wirklich keine neuen "Features" mehr als C oder C ++. Es ist eine gut konzipierte Sprache für die objektorientierte Entwicklung. Mögliche Ergänzungen sind das Erstellen von Bibliotheken zur Ausführung einer Vielzahl von Aufgaben. Das Gleiche gilt für C # - die meisten Funktionen werden hinzugefügt, damit die Sprache mehr Aufgaben erledigt. Persönlich denke ich, dass die meisten dieser Funktionen nicht erforderlich sind - Zeiger in OO sind wirklich so fluffig, es sei denn, Sie arbeiten auf Hardware-Ebene (an diesem Punkt ist es wahrscheinlich besser, so etwas wie C zu verwenden). Außerdem soll das Ausführen in einer VM den direkten Zugriff auf die Hardware erschweren, wenn nicht sogar unmöglich machen.
Unix begann den Trend, Module zu entwickeln, die eines sehr gut können. Ich denke, dass sowohl Java als auch C # beim Feature-Creep etwas aus dem Ruder laufen. Es ist besser, einen leicht erweiterbaren Kern zu erstellen als eine riesige Mehrzweck- "Sprache", die eher einem Framework ähnelt. Für mich erfüllt Java diese Anforderung besser als C #.
quelle
An vielen Funktionen, die C # hinzufügt, ist nichts auszusetzen, aber angesichts der Geschwindigkeit, mit der sie die Sprache ändern, erschweren sie es Mono bewusst, wenn nicht sogar unmöglich, Schritt zu halten. Wenn ja, dann sage ich, dass wir darauf warten, dass C # in Bezug auf die Anzahl der Systeme, auf denen es implementiert werden kann, Java einholt. Es reicht nicht aus, nur unter Windows zu laufen.
quelle
Ich werde kein Diskussionsforum eröffnen, aber ich denke, dass Java schon lange vor C # hier war und in dieser Hinsicht scheint C # eher eine Replikation als Java zu sein.
Zur Beantwortung Ihrer Frage: Java und C # sind verschiedene Sprachen, daher können Sie sie nicht nur anhand ihrer Funktionen vergleichen. Was Sie in Java können, können Sie möglicherweise nicht in C # und umgekehrt.
Schließlich ist dies wie das Starten eines Themas zwischen Windows und Linux.
quelle