Ich war ein "Microsoft-Entwickler", seit ich mit dem Programmieren angefangen habe ... Ich begann mit dem Lernen von QBasic, dann ASP & amp; Visual Basic und schließlich ging ich weiter, um VB.NET, ASP.NET und C # zu lernen, was jetzt meine Hauptsprache ist. Dennoch wollte ich immer etwas wie Java oder C ++ lernen, um zu sehen, wie die "andere Seite" ist, und um die Vor- und Nachteile jeder Plattform zu erfahren. Das einzige Problem ist, dass ich nie die Zeit oder Gelegenheit fand, eine andere Sprache zu lernen.
Mein Grundverständnis ist, dass Java und C # viele Gemeinsamkeiten und Unterschiede aufweisen. Von C # kommend bin ich hauptsächlich daran interessiert, was C # von Java lernen könnte, oder anders gesagt, was ich verpasse.
Sollte Java wie Enums unterstützen, in C # sind sie nur Name für Zahlen!
Ich denke, C # wäre besser dran, wenn sie die eine öffentliche Klasse pro Datei erzwingen würden und Sie gezwungen wären, Ihre Code-Dateien in eine Verzeichnisstruktur zu bringen, die dem Namensraum entspricht (d. h. "Paket"). Das ist eine Sache, die ich wirklich an Java mag, die mich in C # frustriert, besonders wenn Leute anfangen, .cs-Dateien zu verschieben und mehrere öffentliche Klassen in eine Datei zu legen.
Ich persönlich hätte es vorgezogen, den Java-Stil für Eigenschaften zu verwenden. Ich mag die Tatsache nicht, dass Eigenschaften in C # genau wie Felder aussehen und doch eine völlig andere Semantik haben. Indem wir klarstellen, dass Eigenschaften wirklich nur Methoden sind, gibt es keine Illusion und weniger Risiko von Fehlern.
Anonyme Schnittstellenimplementierung - Java macht es, C # nicht (noch).
Zum Beispiel:
%Vor%C # hat offensichtlich sehr viel von Java gelernt, genau wie Java von C ++. Sie haben in beiden Sprachfunktionen hin und her getauscht (z. B. Java nimmt Anmerkungen von C #) und Hilfsprojekte (NHibernate, NAnt, Spring.NET, POJO / POCO-basierte Entwicklung usw. haben alle ihren Ursprung in Java).
Aber ich habe Angst, dass Java nicht mehr voranschreitet, jetzt da Sun Markt und Leute verloren hat und an Oracle verkauft wurde. Ich sehe nichts, was aus Java oder Verkäufern kommt, die im Moment schrecklich neu aussehen. Java 7 hat lange auf sich warten lassen und es schließt mit Schließungen und anderen Dingen auf.
Ich denke, welche Energie in der Sprachentwicklung noch übrig ist, ist an dynamische und funktionale Sprachen übergegangen.
Die einzige Entwicklung, von der ich weiß, dass sie das ändern könnte, ist Rikard Obergs Qi4J . Er ist so draußen. Es wird nur noch eine lange Zeit dauern, bevor es Mainstream wird, wenn überhaupt.