Besitzt C# zuviele Sprachfeatures?

Jack159

Lieutenant
Registriert
Dez. 2011
Beiträge
766
Ich bin vor einiger Zeit von Java auf C# gewechselt und muss sagen, dass C# einiges mehr an Sprachfeatures bietet, welche Tipparbeit sparen sollen. Tipparbeit wird zwar tastächlich gespart, aber ich finde C# übertreibt es hier etwas.
Für alles mögliche gibt es mehrere Schreibvarianten, die sich teils doch schon ordentlich unterscheiden. Manche davon gut lesbar, manche fast garnicht lesbar.
Das Problem ist, dass ich mir für Sprachfeature x jetzt nicht alle 12 Schreibvarianten merke, sondern eigentlich nur 1, nämlich die, die ich einsetze. Von den übrigen 11 sind dann einige so schlecht lesbar, dass man sie nahezu nicht versteht, wenn man diese denn nicht ständig nutzt. Man muss sich also entweder dutzende Schreibvarianten merken, oder damit Leben, öfters mal auf nicht verständlichen Code zu stoßen. Und das alles nur, um hier und da mal vielleicht ein paar Zeilen zu sparen...

Wie seht ihr das?
Stelle ich mich nur zu doof/faul an?
Hatte ich mit Java als 1. Programmiersprache einfach nur Glück was die Einfachheit/Klarheit des Codes angeht? Oder ist C# in dem Bereich doch etwas eigen?
 
Beispiele dafür?

Kann ich nicht unbedingt bestätigen (vielleicht kenn ich aber auch nur die Schreibweisen die ich verwenden ;) )
 
Welche Sachen meinst du konkret? Nicht das du C# und .Net vermischt :)
 
Zuletzt bearbeitet:
Lamda-Ausdrücke und Delegates zum Beispiel sind nichts anderes als syntaktischer Zucker mit jeweils mehreren verschiedenen Syntaxschreibweisen (insbesondere in Kombination dieser beiden). Und das ganze nur um ein paar Zeilen Code zu sparen.
Dann lieber 10 Zeilen mehr und ich kann dafür den Code fast wie ein Buch runterlesen.

Ich finds irgendwie unnötig...
 
Java besitzt zu wenig Features und zu viele Altlasten, auf Grund der ultrakonservativen Entwicklungsphilosophie. Mit Java 8 wirst du aber auch mit einer Reihe neuer Features beglückt, die in die Richtung gehen, die dich bei C# gerade verwirrt.

Wenn du mal noch abgefahreneres Zeug sehen willst, arbeite dich mal in Scala ein. Damit bleibst du wenigstens auf der JVM und somit portabel und nicht an den Microsoft-Schlonz gebunden. :)
 
Lambdaausdrücke erlauben (zumindest in Lisp) Funktionen höherer Ordnung und das ist eine wirklich, wirklich großartige Sache.

Deine Frage allerdings: Geschmacks/Religionssache. Eine simple Sprache, deren eingebaute Features man an Fingern und Zehen abzählen kann, hat den klaren Vorteil, dass man nicht 3/4 seiner Zeit mit Nachschlagen verschwendet. Dafür braucht man diese Zeit dann dafür, die Features, die der Sprache fehlen, selbst zu bauen. Da du allerdings von Java kommst, ist das vermutlich eh nicht die Sorte Programmiersprachen für dich. Deshalb muss ich aus meiner Position sagen: Boo-Fucking-Hoo. Du kommst von einer Sprache, die für Überladenheit bekannt ist und findest die neue Sprache ist noch überladener? Was stimmt mit dir nicht? Die vielen Features sind da, dich zu unterstützen. Nutze sie.
 
Zurück
Oben