Worin unterscheiden sich Bzw. gibt es C, C#, C+ und C++?

7 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Am Anfang war das C. Erschienen ist das 1972. C ist also erschienen, als diese ganzen Programmiersprachenkonzepte noch sehr neu waren.

Jetzt hat man weiter an Programmiersprachen geforscht und ein völlig neues Konzept entwickelt - genannt "Objektorientierung". C fand man cool - jetzt wollte man aber auch in C diese coolen neuen Konzepte haben.

Deshalb kam das C++ 1985. C++ hat man diese neuen objektorientierte Konzepte einfach in C reingekloppt - bis auf ein paar ganz kleine Ausnahmen hat man C aber nicht angefasst, sondern nur neue Sachen zu C hinzugefühgt. Du kannst also, wenn du C++ programmierst, auch C-Code schreiben - das ist gültig.

2001 - also 16 Jahre nach C++ - kam Microsoft auf die Idee eine neue Sprache zu bauen. Und man hat halt Namen gesucht - und ganz beliebter Trick ist das Zeug so ähnlich zu nennen, wie etwas, was bereits weit verbreitet ist. Deshalb hat man es halt C# genannt. Viel gemeinsam außer syntatkische Anlehnung zu C/C++ gibts aber nicht.

Und glaub mir: Es sind sehr viele Sprachen syntaktisch bzw. von den Grundkonzepten von C/C++ - wie z.B. Java und Javascript (übrigens: gleicher Tick; Javascript hat absolut nichts mit Java zutun).

C: Ursprüngliche Programmiersprache, (auch) für die Programmierung von Betriebssystemen geeignet, geringer Befehlsumfang. Eher schwierig, da vieles möglich ist.

C++: Erweiterung von C um die objektorientierte Programmierung, Templates etc. sowie Weiteres wie z.B. bool, aber auch weiterhin ohne OOP verwendbar. Dank der umfangreichen Bibliotheken ist C++ inzwischen doch etwas anderes als C, im Ergebnis deutlich von der Maschinencode-Logik abstrahbarer.

C#: Microsoft-Lösung in anfänglicher Ähnlichkeit zu Java für Windows, inzwischen eine sehr selbständige Programmiersprache, zwingend OOP, mit Mono auch in gewissen Umfang plattformerweitert. Gemeinsamkeiten zu C gibt es im Prinzip nicht mit sehr wenigen Ausnahmen, insbesondere bei der Struktur-Syntax ({}, for, while, teilw. (!), Operatoren und weniges mehr, anders jedoch bei Arrays, Aufbau und Einbindungen sind auch deutlich anders). Dank WPF und anderen Ergänzungen lässt sich C# inzwischen kaum noch in einem Satz mit C sagen, eher mit Java. Man sollte sich klar sein, dass C# im Prinzip die .NET-Lösung ist, also ganz weit weg von C. Arg überspitzt gesagt: C ist von C# in etwa so weit entfernt wie Java von Assembler. Stimmt nicht ganz, aber als grobe Orientierung.

C+: gibt es nicht, zumindest kenne ich es nicht, vielleicht hat einer seinen Compiler mal so genannt (oder auch nicht). Dieses ++ ist ein Operator aus C, daher der Name C++. ++C wäre wohl richtiger gewesen.

 

Woher ich das weiß:Eigene Erfahrung – Hobby und teilweise beruflich

"++C wäre wohl richtiger gewesen" :D

1

Es sind halt verschiedene Programmiersprachen. Obwohl die Syntax dieser Sprachen ähnlich ist, besitzen sie unterschiedliche Schlüsselworte und haben unterschiedliche Funktionalitäten. C ist am nähesten an der Hardware angesiedelt, hat aber keine Unterstützung für objektorientierte Programmierung, wodurch das Programmieren für Anfänger oft sehr eklig wird.

C ist die alte Basis. C+ existiert nicht. C++(Anspielung auf Inkrement-Operator) ist eine erweiterung von C mit halbherziger Objektorientierung, C# ist eine objektorierntierte Sprache vage auf Basis von C(wie Java) das primär mit .NET arbeitet. Kein Experte.

Dazu kann man sagen, dass C und C++ sich wohl auf Linux fühlen, C# aber vor allem Windows-Sache ist. Natürlich sind alle irendwie (von der Sprache slebst her) portierbar.

C+ existiert nicht.

Zumindest nicht "offiziell"... Aber zumindest ich persönlich verwende "C+" gerne als leicht scherzhafte Bezeichnung für eine "starke" Mischung aus "classic C" und C++. ;)

Z.B. für so Dinge wie C++ mit printf/scanf, fopen/fread/fclose, usw...

0
@Isendrak

Lass das lieber. Wenn das jemand aufschnappt, geht das Ganze wieder von vorne los.

0

Also. C ist die „Basis“ aber die weiter „Entwicklung“ von C hat zu C++ geführt.        
Und C# ist einfach objektorientiert und ist halt an C angelehnt.          

C# ist an C angelehnt

Nicht wirklich.

3

Naja, die Syntax ist schon an C angelehnt.        
Der Rest natürlich eher nicht :P
Garbage Collector und so, gibts in C ja auch nicht. C und C# haben halt ähnliche Syntax, mehr wollte ich aber auch nicht sagen. Wenn das falsch rüber kam, hast du was falsch verstanden.

0
@Hairgott

Naja, die Syntax ist schon an C angelehnt.

Das trifft aber auf ziemlich viele Sprachen zu.

2
@Hairgott

Nur gewisse Teile der Syntax in C# sind ähnlich zu C. Viele Fallstricke, wenn man nicht aufpasst:

C#: int[] myarray = new int[] { 1, 2, 1, 0 }; new verlangt Konstruktor!!! myarray ist ein Objekt!!! Ich habe jetzt Methoden für myarray.
C++: int myarray [] = { 1, 2, 1, 0 }; // nur ein Speicherbereich, myarray ist quasi der Start (wenn auch nicht dasselbe wie ein Zeiger, so doch ähnlich!

Insgesamt ist es scheinbar ähnlich. Dasselbe gilt auch für Java zu C. Man hat eben die {}, man kann die Variablen-Typenbezeichner verwenden, teilweise die aus C-bekannten Operatoren. Aber dann ist schon Schluss.

1
@Hairgott

"An C angelehnt" habe ich aber auch auf weit mehr als das Aussehen der Syntax interpretiert.

Abgesehen davon haben C und C# kaum mehr gemeinsam als irgendwelche zwei beliebig herausgegriffenen Programmiersprachen.

1

Was möchtest Du wissen?