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:
- Wenn Sie die Abwärtskompatibilität aufheben, ärgern Sie viele Entwickler
- Wenn Sie Ihre Entwickler verärgern, wechseln sie zu einer anderen Sprache, die sie besser unterstützt. Daher kein Grund, weiter mit der Sprache zu arbeiten.
- Java traf einige Designentscheidungen schon früh mit dem Druck, die Sprache auf den Markt zu bringen. Die Hoffnung war, zurück zu gehen und einige der Lücken auszufüllen. Diese Entscheidungen plagen immer noch die Sprache, weil die Betreuer nicht gegen den ersten Punkt verstoßen wollen.
- Java hat viel Neuland betreten und ein für allemal bewiesen, dass eine Sprache, die mit Müll gesammelt wurde, ernst genommen werden kann - und für die meisten Menschen eine gute Leistung erbringt.
- C # kam später dazu und lernte eine Menge der Lektionen, in die Java geraten ist - so konnten sie einige der technischen Einschränkungen vermeiden, die Java aufgrund von Punkt 3 hat.
- Neue Sprachfunktionen müssen ein echtes Problem auf sinnvolle Weise lösen. Nicht jede Sprachfunktion ist im Kontext der Sprache, zu der Sie sie hinzufügen möchten, sinnvoll. Aus diesem Grund werden Java und C # trotz ihrer Ähnlichkeiten weiterhin unterschiedliche Sprachen sein.
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.