Wo ist der unterschied zwischen C++ und C#

Timo Rickert

Mitglied
Hallo !

Ich muss zwangläufig anfangen mit C++ oder C# zu Programmieren, aber wo ist der unterschied, was ist einfacher zu lernen, was sind die Vor- und Nachteile, was würdet ihr empfehlen ?

Danke im voraus !

Gruß Timo Rickert
 
C++ ist Hardcore. Man kann im Prinzip alles machen, und grade deswegen kann man sich auch leicht selber reinreiten. Dafür hat man aber die volle Kontrolle.

C# ist das, was Java hätte sein können/wollen. Es setzt auf die .NET-Plattform auf, behält aber eine C++-Syntax bei. C# ist wahrscheinlich einfacher, da einem viele Dinge abgenommen werden. Auch musst du nicht auf Speicherlecks achten (oder kaum).
Ein Nachteil: Der Benutzer muss die .NET-Runtime installiert haben. Ab XP ist schon die 1.0 dabei, ansonsten fällt da ein ca. 20 MB-Download an.
C# ist nicht komplett kompiliert, wird bei Programmstart nochmal übersetzt und hat gegenüber C++ ca. 5% Leistungsabfall. Das ist sowenig, das fällt kaum auf. Dafür bekommst du mächtige Grundklassen, die du in C++ selbst erst erstellen müsstest.
 
Also...

Plattformen/Betriebssysteme:
*Mit C++ (und C, die Sprachen hängen zusammen)kann man
für ziemlich Alles programmieren, allerdings ist jedes zusätzlich
nötige Betriebssystem ein nicht zu unterschätzender Mehraufwand
für den Programmierer.
*C# ist ursprünglich nur für Windows gedacht. Es gibt zwar Zusatzsoftware
für Linux (Mono), die C#-Programme ausführen kann, aber verglichen mit dem
Windows-Original gibts verschiedene Probleme, vor allem mit neuen Features,
die erst vergleichsweise soät in Linux verfügbar werden.
*Java: Ist wieder von Haus aus Multi-fähig, und im Gegensatz zu C++ gehts
ziemlich von selbst, ohne mehr Programmiererei. Javas Problem:
Egal welches Betriebssystem, man muss jedenfalls zuerst Zusatzsoftware (JRE)
installieren, um Javaprogramme überhaupt starten zu können.
Unter Umständen ist die JRE schon von Anfang an dabei,
aber die werksmäßige Verbreitung ist im Abnehmen.

Was man damit machen kann:
*C# und Java: Alle "normalen" Programme, aber nicht:
Betriebssystemsachen, Treiber, etc. (das ist einfach nicht möglich)
3D-Spiele/Programme: Wäre möglich, hat aber Nachteile
*C/C++: Alles.
Für "Normal"-Programme haben C#/Java aber oft Vorteile,
weil Dinge wie normale Fenster damit etwas einfacher zu realisieren sind als in C++.

Geschwindigkeit der Programmausführung:
C/C++ hat ganz klar die Nase vorn.
Bei Normalprogrammen merkt man zwar kaum Unterschiede
(weil die keine große Leistung benötigen),
aber bei Sachen wie 3D-Spiele, mathematische Berechnungen etc.
kann man mit C/C++ viel Zeitersparnis/flüssigere Grafik rausholen.

Was einfacher zu lernen ist:
Da gehen die Meinungen auseinander...reinschnuppern und selbst ein Urteil bilden :)

Anzumerken sei noch, dass sich C# und Java programmiermäßig ähnlich sind,
jedenfalls ähnlicher als C#-C++ oder Java-C++

Gruß
 
Um es mal von einer anderen Seite zu betrachten:
C++ entspricht Programmieren im ursprünglichen Sinn, C# besteht dagegen aus Unmengen von Libraries, in denen nahezu alles was mit Programmieren zu tun hat schon vorgefertigt ist, ein C# Programm besteht überwiegend aus Aufrufen von Funktionen die in C++ gar nicht erst existieren.

Der Lernaufwand dürfte in etwa gleich sein, denn es macht herzlich wenig Unterschied, ob man lernt wie man eine Programm-Grundstruktur aufbaut, oder sämtliche Funktionen samt Parametern und Syntax.

Unterm Strich bevorzuge ich allemal C++, denn Programmieren muss man nur einmal lernen, Libraries voll Funktionen muss man bei jedem Umstieg neu lernen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück