C# oder C/C++

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Progger
Beiträge: 10
Registriert: Mi Okt 28, 2009 1:16 pm

C# oder C/C++

Beitrag von Progger » Mo Nov 02, 2009 9:24 pm

Was ist besser C# oder C/C++?


Und kennt einer ein geiles C# tutorial

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C# oder C/C++

Beitrag von Xin » Mo Nov 02, 2009 10:18 pm

Progger hat geschrieben:Was ist besser C# oder C/C++?
Falsche Frage. Was willst Du tun?

C# ist eine nette Sprache, recht aufgeräumt, .NET liefert ein nicht ganz so aufgeräumtes Framework mit, was aber durchaus noch einen eher guten Eindruck hinterlässt. Man kann damit effizient programmieren. Bei der Ausführung kann einem der JIT-Compiler und die GarbageCollection in den Weg kommen. Ich halte JIT und GC für Sackgassen, aber die Mehrheit der Entwickler ist anderer Meinung. Ich halte C# für eine schöne Einsteigersprache. Manche Dinge, die C# nicht kann, kann man in einem sogenannten 'unsafe' Modus lösen, dort programmiert man dann im Stil von C++. Der direkte Zugriff auf's System ist in die Sprache integriert. An beiden Problemen scheitert Java kläglich (und für die Java-Freunde: JNI rettet da nichts...)
Du kannst C# Fragen gerne hier im Forum posten, ich programmiere C# beruflich, sollte also auch Fragen beantworten können.
.NET existiert nur auf Windows, aktuelle .NET-Frameworks wie WPF sind unter Windows 2000 und XP nicht verfügbar. Will man also nicht an der Masse der PCs vorbeiprogrammieren, benötigt man für Dialoge die .NET-WinForms, welche im Vergleich zu MUI (Magic User Interface, das gab's auf'm Amiga vor 20 Jahren) ziemlich alt aussehen, so sch... sind WinForms. Aber solange man keine Ansprüche stellt, werden sie nicht enttäuscht und zu Beginn ist so ein statischer Dialog schnell mit VisualStudio schnell zusammengeklickt.
In Details ist C# sauberer als C++ (Semantik beim Überschreiben von Methoden). C# ist nicht so exceptionverrückt wie Java, was man ihm im Vergleich zu Java als Pluspunkt auslegen sollte. Ich würde sagen, dass Exceptionverhalten von C# ist akzeptabel.

C++ bietet trotz des höheren Alters fortgeschrittenere Technikern, die in C# teilweise sehr fehlen (Const-Correctness, Templates, Referenzen) oder absichtlich ausgeklammert wurden (Mehrfachvererbung, was ich sehr bescheiden finde). Dafür fehlen GarbageCollection, der JIT-Compiler ist in C++ vollkommen überflüssiger Ballast, den es deswegen auch nicht gibt. Exceptions (zu Deutsch "Ausnahmen") werden höchstens ausnahmsweise verwendet.
Diese fortgeschritteneren Techniken wirst Du allerdings erst bemerken, wen Du selbst auch Fortgeschrittener bist. C++ lässt Dich direkt am Anfang in mehr Fallen tappen, was bedeutet, dass Du lernst, nicht in Fallen zu tappen. Das ist frustrierender, aber mit guter Unterstützung durch Lehrer, Bekannte oder das Forum hier, effizienter. Du solltest aber auch mit Frust umgehen können, den üblicherweise fällt man in eine Falle, weil man es nicht besser wusste und dann muss man rausfinden, wieso man da jetzt drin sitzt. Damit versteht man aber auch, wie Computer funktionieren (oder wie sie eben nicht funktionieren...)
Du musst mehr lernen, als mit C#, dafür kannst Du mit C++ verhältnismäßig einfach auf C# wechseln, aber umgekehrt sieht die Sache anders aus.

Möchtest Du (irgendwann) auf Linux oder MacOS wechseln, so bist Du bei beiden Systemen mit C++ direkt am Start. Mein Hauptprojekt kompiliere und programmiere ich auf Linux, Mac und Windows in C++. C# ist stark an Windows gebunden. Es gibt eine Portierungen namens Mono, bisher kenne ich aber kaum jemanden, der Mono als Zielplattform wirklich ernst nimmt. Kurz: C# begrenzt Dich auf Windows.


Was besser ist lässt sich nicht so einfach beantworten. Wenn Du mich fragen würdest, würde ich ganz klar C++ sagen. Schon alleine, weil ich durch alle Betriebsystem wandere, fällt für mich C# raus. Aber es geht nicht um mich: es ist eher die Frage, was ist besser für Dich?

Eine Programmiersprache zu lernen ist sehr aufwändig. Um die richtige Entscheidung zu treffen, lohnt es sich vielleicht sich die richtigen Fragen zusammen zu suchen und dafür Antworten zu finden.
Fragen findest Du im Artikel Wahl der Sprache im Wiki.
Progger hat geschrieben:Und kennt einer ein geiles C# tutorial
Ich kann keins empfehlen, aber auch kein geiles schreiben, da ich C# nicht schlecht finde, aber andere Vorstellungen von geil habe. (auch was Programmiersprachen angeht) ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: C# oder C/C++

Beitrag von cloidnerux » Di Nov 03, 2009 5:50 pm

Ich selbst Programmiere auch ein wenig C#, da es auch schön einfach ist, neue Funktionen zu nutzen, ohne sich in Header zu verlieren, ohne sich mit den Bibiltoheken zu ärgern oder wegen nicht gelöschten Objekten im Speicher.
Mit Mono habe ich schon etwas herumprobiert, mein Eindruck von Mono ist bisher aber noch mehr als Dürftig, da Mono immer hinterher hinkt, Funktionen nicht richtig einbindet oder schlichtweg nicht Funktionieren.
Zum Thema Plattform unabhänigkeit kann ich nur sagen, das es nur die Wenigsten Projekte, die man erstellt, auch sinnvoll ist, sie auf vielen Platformen zu nutzen. Ich hatte bisher mehr das Gefühl, das man sich an diesen Punkt in endlos komplizierte Dinge stürzt, auf Funktionalität verzichtet, für ein Feature, was am Ende keiner nutzt.
Ich sehe es daher als wichtiger, sauberen Code zu schreiben, Obejktorientierung und Verbung zu verstehen, anstatt sich mit banalen Problemen der Sprache C++ auseinander zu setzen, was aber nichts heißen soll.
C++ hat auch seine Vor- und Nachteile. Am Ende must du entscheiden.
Und kennt einer ein geiles C# tutorial
Nur gute, da wäre von GalileoComputing das Buch http://www.galileocomputing.de/katalog/ ... 4QUy9.mG-E.
Es ist zwar ein komplettes Handbuch, aber es Hilft ungemein, da die Grundprinziepien jeder Sprache sich ähneln(if, while etc.), verläuft die Eingewöhnung auf C# meistens recht schnell und Reibungslos und dann bietet dir das Buch einen Überblick über das Reportoir der Sprache C#, was sehr Hilfreich sein kann.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten