# Unterschiede C/C++/C#



## the_undertaker (20. Mai 2007)

Hallo,

ich hab mal folgende Frage:

Wie groß sind die Unterschiede zwischen C, C++ und C#, was sind das für Unterschiede, warum gibt es 3 so ähnliche(?) Programmiersprachen?


----------



## jsendrow (20. Mai 2007)

Die drei Sprachen sind überhaupt nicht ähnlich, sondern grundlegend verschieden.

C ist eine prozedurale Sprache die sich vor allem durch eine hohe Nähe zur Hardware auszeichnet. Manchmal spricht man bei C deswegen auch von der modernen Maschienensprache. C kennt keine Klassen oder andere Elemente die das Objektorientierte Programmieren unterstützen. C dürfte es für so ziemlich jedes bekannte Betriebssystem geben.

C++ ist eine Sprache die zwar aus C heraus entstanden ist, aber ansonsten eine eigenständige Sprache ist. (Nicht mißverstehen, jeder C++ Compiler kann _auch_ C compilieren, daß hat aber in erster Linie historische Gründe) C++ kennt Klassen und Referenzen und unterstützt Objektorientiertes Programmieren deutlich. Auch C++ gibt es für so ziemlich jedes Betriebssystem. Viele machen den Fehler C und C++ durcheinanderzuwerfen und miteinander zu vermischen. 


C# ist eine .NET Sprache von und für Microsoft und hat eher eine Nähe zu Java als zu C++. Es ist ebenfalls eine OOP Sprache. Im Unterschied zu C++ kennt C# vor allem Delegates und Events, wodurch C# die Idee des Event driven Designs optimal unterstützt. Das ist zwar in C++ durch Einsatz von Funktionszeigern auch machbar, aber bei weiter umständlicher. C# ist anders als C und C++ eine Sprache die im Rahmen einer VM läuft (stichwort managed Code), ebenso wie Java. 


Der Begriff OOP (Object Oriented Programming) sollte unabhängig von der Sprache gesehen werden, denn es ist mehr eine Sichtweise wie man mit Code umgeht bzw. diesen organisiert. Grundsätzlich kann man in jeder Sprache OOP oder prozedural programmieren, es wird nur von den unterschiedlichen Sprachen mehr oder weniger gut unterstützt.

(Schönes Beispiel: der Linux kernel ist komplett in C programmiert, benutzt aber z.B. für sein VFS einen OOP Ansatz.)


----------



## the_undertaker (21. Mai 2007)

Aha......


----------

