C++/C# Unterschiede/Vorteile/Nachteile

Guten Abend,
Ich wollte mal nachfragen was die Unterschiede/Vorteile/Nachteile
von C++ und C# sind.

VG.
JuraX

C++ ist relativ alt und quasi überall Standard. Wenn du C++ kannst ist das immer gut. C++ ist nativ, das heißt, dass du für jede Plattform einen eigenen (Cross-)Compiler brauchst, aber es ist dafür schnell. C++ bietet Pointer und man kann (fast) alles damit machen. Die meisten Spiele sind in C++ geschrieben. C# ist moderner und läuft in einer virtuellen Maschine (.NET Framework), was es theoretisch plattformunabhängig macht, aber auch etwas langsamer, da es auch eine automatische Speicherbereinigung hat. Es bietet Pointer und andere „gefährliche“ Konzepte nur im Unsafe-Modus. Damit kann man manchmal etwas Performance rauskitzeln. Solange man nicht über P/Invoke irgendwelche plattformspezifischen Funktionen nutzt, ist C# mithilfe des Mono Projekts auch auf Linux und Mac OS X ohne Änderung lauffähig. Mono hat bald den Stand von .NET 3.5, es hinkt also etwas hinterher, aber das meiste ist nutzbar. C# hat viele „Altlasten“ von C++ nicht mehr und es ist daher leichter zu lernen und ein Umstieg auf Java ist auch relativ einfach. Man kann sogar Spiele programmieren z. B. mit XNA (was dann aber (bis jetzt) nur auf Windows läuft) oder man macht es als Mix von C++ und C#, sodass nur die Grafiksachen in C++ sind und portiert werden müssen und die Logik mittels Mono in C# läuft, dann kann man diesen Code einfach stehen lassen. Es ist also auch gut beide zu können.
Wenn du für Windows entwickeln willst und nicht gerade grafisch mega-aufwändige Ego-Shooter oder Treiber oder Betriebssysteme machen willst, dann wirst du den Rest meistens auch mit C# hinbekommen und hast oft deutlich weniger Aufwand. Willst du „Bürosoftware“ (also keine Systemtools) machen, dann kannst du C# mit Mono (oder .NET 2.0) nehmen und hast den Vorteil, dass die Windows-EXE auch mit Mono auf Linux und Mac OS X läuft.

Grüße, JasonDelife.