Wie schwer ist C# zu erlernen?

5 Antworten

Die Syntax zu Java ist recht ähnlich, allgemein C# ist eher eine einfache Sprache. Sie hat natürlich - wenn man tief einsteigt - ihre Raffinessen, wo es dann mitunter sehr kompliziert wird, aber das ist wirklich hinten raus, wenn man high-end programmiert.

Für den Normalgebrauch ist C# eine sehr dankbare Sprache, sehr unterstützend, sehr Fehler-vermeidend, sehr verständlich.

Woher ich das weiß:eigene Erfahrung – Hobby und teilweise beruflich
Mathias4 
Fragesteller
 03.08.2020, 10:00

Ok danke

0
HansImGlueck178  03.08.2020, 10:01

Man muss nur sehr vorsichtig sein, weil C# eine verdammt "große" Sprache ist, das heißt es werden einem super viele verschiedene Konzepte und Paradigmen entgegen geworfen. Da ist Java sehr viel dankbarer, weil es einfach weniger vielfältig ist.

1
nobytree2  03.08.2020, 11:03
@HansImGlueck178

Das ist schon richtig, es hängt ja der komplette Satz der Windows-Bibliotheken hinter C#, welche C# so mächtig machen (wohin gegen Java mit der Plattformunabhängigkeit gemach vor sich gehen muss), und es ist wohl die Lieblingssprache von Microsoft, es wird also permanent im Wettstreit mit Java darum gebastelt.

Aber das was z.B. ab 7.0 dazu gekommen ist, muss man als Anfänger nicht wissen, viel Vereinfachungen (in Deklarieren, Syntax Musterabgleich etc.), bzgl. Parallel Programming, Stackalloc etc. - muss man jetzt nicht alles in den aktuellen Verbesserungen perfekt können, man muss auch nicht alle Bibs kennen.

Aber wenn man die neuen Konzepte und Paradigmen lernt, ist man auf der Höhe der Zeit, würde ich sagen, C# hinkt zeitlich nicht hinterher.

0
PWolff  03.08.2020, 12:56
@nobytree2

Im Gegenteil, ich habe Java als Rückschritt empfunden (z. B. die ziemlich behelfsmäßige Unterstützung von "Generics", die bei C# seit Version 2.0 fest eingebaut ist.

0

Sie ist ganz einfach wenn du sie lernen willst. Sie ist wirklich leicht verständlich, und ich kann auch den Sinn hinter den Zeilen sehen.

Grundlagen sind immer einfach.

Der volle Umfang Bedarf Jahrzehnte lange Erfahrung

Da du schon mit Java angefangen hast, wirst du mit C# wenig Probleme haben. Die Syntax ist nahezu gleich. An abweichende "Konventionen" muss man sich gewöhnen - z. B. sehen die Standards vor, dass Methoden in Java mit Kleinbuchstaben anfangen und in C# mit Großbuchstaben (aber das ist nur eine Empfehlung, dem Compiler ist das völlig schnurz).

Was das Programmieren von Drohnen betrifft:

Allein schon die Selbstregulation - Halten des Gleichgewichts und Verharren am selben Ort in derselben Höhe, solange keine andere Anweisung kommt - erfordert etliche "Mannjahre" an Programmierarbeit. Hier greift man also am besten auf "Bibliotheken" (englisch "libraries") zurück, die am besten in ihren hardwarenahen Schichten auf die jeweilige Hardware angepasst ist.

Einer größten Vorteile von Java und C# - die strikte bzw. sehr weitreichende Objektorientierung - ist einer der größten Nachteile bei "Echtzeit-Anwendungen", also bei Anwendungen, die sich nicht einfach mal so ein paar Sekunden mehr Zeit lassen können, bis sie eine Berechnung abschließen. Eine Drohne könnte bis dahin abgestürzt oder in der nächsten Regentonne gelandet sein. Das liegt daran, dass sich die Schicht unter dem Programm - die Java Virtual Machine bzw. die .NET-Maschine - selbständig um das "Aufräumen" nicht mehr benötigter Objekte kümmert. Wenn der Speicherplatz von aufgegebenen Objekten voll ist, wird die "Müllabfuhr" (der "Garbage Collector") losgeschickt, um den "Müll einzusammeln", und das kostet Zeit, noch dazu zu einem nicht vorhersagbaren Zeitpunkt.

Deshalb werden Fahrzeugsteuerungen (inkl. Luftfahrzeuge), Anlagensteuerungen, Spiele und ähliche Echtzeit-Anwendungen in Programmiersprachen programmiert, bei denen sich der Programmierer selbst darum kümmert, wann und wie nicht mehr benötigter Speicherplatz freigegeben und ggf. freier Speicherplatz zusammengelegt wird. V. A. C++.

Woher ich das weiß:Berufserfahrung – Software-Entwickler

C# ist eine Programmiersprache mit hoher Abstraktion, die nicht hardwarenah ist. Ähnlich wie bei Java wird das Programm nicht direkt vom Prozessor ausgeführt, sondern von einer Zwischenschicht.

Je nachdem, was du an der Drohne programmieren möchtest, würde sich eine hardwarenahe Sprache wie C/C++ besser eignen.