Aus dem Kurs: Grundlagen der Programmierung: Basiswissen
.NET-Sprachen (VB.NET,C#,F#): Codebeispiel
Sehen wir uns nun Beispielcode zu .NET an. Wir beginnen mit Visual Basic .NET, gegenüber z.B. mit C# und sehen uns im Anschluss an, wie der Quellcode von F# aufgebaut ist. Hier sehen Sie die Syntax von Visual Basic .NET. Das Beispiel ist bewusst einfach gehalten und liest beim Programmstart einfach die übergebenden Argumente ein. Es fragt den Nutzer nach seinem Namen und gibt dann alle Argumente wieder aus. Bemerkenswert ist hierbei der Unterschied zu C-basierten Sprachen. So finden Sie im gesamten Quellcode keine geschweifte Klammer, außer bei der Übergabe des Namens an den Ausgabestring. Stattdessen werden Schlüsselwörter wie "Sub" und "End Sub" verwendet. Eine weitere Besonderheit bei Visual Basic besteht darin, dass es eine Art Klassenkonzept gibt. Dieses Klassenkonzept verhält sich aber anders als bei anderen objektorientierten Sprachen. Aus diesem Grund spricht man bei Visual Basic .NET auch nicht von Klassen, sondern von Modulen. Eine weitere Besonderheit ist dann auch ein bisschen nervig. So werden in Visual Basic zwar viele Dinge großgeschrieben, aber tatsächlich ist die Sprache nicht case-sensitiv. Das bedeutet, dass ein Methodenname an der einen Stelle kleingeschrieben wird, aber an einer anderen wiederum großgeschrieben sein kann. Das erschwert die Lesbarkeit des Codes, da beides die gleiche Methode meint. Aufgrund dieser Besonderheiten ist Visual Basic unter vielen Programmiererinnen und Programmierern nicht besonders beliebt. Demgegenüber erfreut sich C# großer Beliebtheit. Das Beispiel, das ich Ihnen hier zeige, ist das Gleiche wie vorhin mit Visual Basic. Die Syntax erinnert dabei viel mehr an das, was Sie möglicherweise von anderen Sprachen kennen. So gibt es vergleichsweise wenige Schlüsselwörter und mehr geschweifte Klammern. C# bietet auch die volle Palette an Funktionen einer objektorientierten Sprache an. So gibt es verschiedene Sichtbarkeiten, Vererbungsmöglichkeiten, Schnittstellendefinitionen und anderes. In den letzten Jahren hat Microsoft dabei zunehmend auch funktionale Features in die Sprache eingefügt. Das zeigt sich bspw. bei der Ausgabe der einzelnen Argumente und dem darin enthaltenen Pfeil. Selbstverständlich könnte ich auch hier einfach eine foreach-Schleife nutzen, habe mich aber dazu entschieden, stattdessen eine anonyme Funktion zu wählen. Anonyme Funktionen haben keinen Namen und können an jeder Stelle erstellt werden, wo sie sinnvoll erscheinen. Man kann diese anonymen Funktionen auch miteinander kombinieren. C# hat noch viele weitere Features. Es würde jedoch weit über das Ziel hinausragen, all diese hier zu erläutern. Grundsätzlich sei aber gesagt, dass Microsoft sehr viel Aufwand betreibt, um die Sprache C# kontinuierlich weiterzuentwickeln. F# ist ein Sonderfall. Diese Sprache unterscheidet sich sehr deutlich von anderen Sprachen, die Sie bisher gesehen haben. So gibt es bspw. nahezu keine Klammern und auch keine Semikolons. Es handelt sich hierbei um eine funktionale Sprache, wie sie vor allem zur Algorithmierung eingesetzt wird. Mit ihrem Fokus auf Funktionen ähnelt sie dann vom Grundgefühl her JavaScript, ist aber typsicher und nicht ganz so dynamisch. Da F#-Projekte meist eher eine Sammlung von Funktionen und Datentypen sind, wird ggf. eine Einstiegsmethode als EntryPoint definiert, so wie ich dies in diesem Fall getan habe. Die Hierarchie der einzelnen Elemente ergibt sich dann anhand der Einrückungstiefe im Dokument. Dadurch weiß der Compiler bspw., dass die Funktion main heißt und einen Parameter argumente hat. Der Rest folgt dann dem gleichen Ablauf wie in den vorangegangenen Beispielen, wobei sich F# hier auch den Klassen und Funktionen des .NET Frameworks oder anderer Bibliotheken bedienen kann, wie man das im Fall von Console.ReadLine() sieht. So können F# und C# durchaus in einem Projekt vermischt verwendet werden. Jede der Sprachen hat im Grunde eine eigene Zielgruppe. Visual Basic würde ich an der Stelle Einsteigerinnen und Einsteigern empfehlen. Mir scheint es, als ob diesen die Syntax etwas einfacher fällt, da sie sprechender ist. Für einen professionellen Einsatz lohnt sich die Sprache jedoch nicht mehr, da Microsoft sie nicht mehr groß weiterentwickelt. C# eignet sich hingegen sehr gut für Fortgeschrittene und Profis. Es bietet alles, was man von einer modernen Hochsprache erwarten würde und übertrifft mit ihrem Funktionsreichtum viele andere Sprachen. Dieser Funktionsreichtum ist dann aber auch wieder ein Nachteil. Aufgrund der vielen verschiedenen Methoden und Schlüsselwörtern kann es schwierig sein, herauszufinden, wie man bestimmte Dinge tatsächlich tun sollte. Sofern Sie nicht ein sehr mathematisches Studium belegt haben, kann ich Ihnen F# für den Einstieg nicht empfehlen. Das liegt daran, dass die damit verbundene Vorgehen und Muster der Mathematik entnommen sind. Das erschwert es Einsteigerinnen und Einsteigern, mit der Programmierung zu beginnen. Erschwerend kommt hinzu, dass Microsoft selbst die Sprache etwas stiefmütterlich behandelt, wodurch die Unterstützung mit Werkzeugen und Dokumentationen nicht selten hinterherhinkt. Da stand in der Vergangenheit auch einer entsprechenden starken Marktdurchdringung im Weg. Nichtsdestotrotz ist F# sehr mächtig. Hat man diese Sprache einmal gemeistert, möchte man sie nicht mehr missen. Nach wie vor ist C# die wichtigste Programmiersprache in der .NET-Welt. Auch hier verweise ich auf die zahlreichen C#-Grundkurse.
Inhalt
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Populäre Programmiersprachen im Überblick1 Min. 42 Sek.
-
C und C++: Charakteristika und Einsatzbereich2 Min. 56 Sek.
-
C und C++: Codebeispiel4 Min. 5 Sek.
-
Java: Charakteristika und Einsatzbereich3 Min. 59 Sek.
-
Java: Codebeispiel2 Min. 31 Sek.
-
.NET-Sprachen (VB.NET,C#,F#): Charakteristika und Einsatzbereich5 Min. 38 Sek.
-
.NET-Sprachen (VB.NET,C#,F#): Codebeispiel5 Min. 41 Sek.
-
TypeScript: Charakteristika und Einsatzbereich2 Min. 41 Sek.
-
TypeScript: Codebeispiel3 Min. 15 Sek.
-
Python: Charakteristika und Einsatzbereich1 Min. 54 Sek.
-
Python: Codebeispiel1 Min. 50 Sek.
-
-
-