Du kannst mit beiden sogut wie fast alles realsieren. Allerdings ist C# natürlich etwas langsamer als C++. Der Unterschied dürfte sich bei den meisten Anwendungen allerdings gering halten. Des Weiteren bietet C# mehr 'managed'-Funktionen, d.h. es verwaltet beispielsweise den Speicher. Bei C++ musst du dahingehend sehr viel mehr selber machen, was ebensoviel Disziplin erfordert wie Wissen. Machst du gerade da etwas falsch, kansnt du viele Sicherheits- und Speicherlöcher erschaffen. Allerdings bringt gerade soetwas Performanz.
Das Problem an C# ist die direkte Abhängigkeit an eine Firma, die als einzige Zugriff auf die Standarisierung und Interoperatibitlität der Sprache hat. Auch wenn das Mono-Projekt versucht unter Linux .NET und damit C# laufen zu lassen, ist man doch von der Firma abhängig. Mit einem Lizenz-Schlag von Microsoft, kann die ganze Mono-Blase zerfliegen.
Falls dich plattformunabhängigkeit aber nicht interssiert, ist das natürlich kein Aspekt. Auch wenn eine Abhängigkeit an eine Firma natürlich auch Vorteile hat. C# bzw. .NET stammt von Microsoft genauso wie Windows, daher ist natürlich naturgemäß eine Grundlage da.
Im Endeffekt ist die Frage nach der richtigen Programmiersprache immer mit mehren Kernfragen verbunden, die nur du beantworten kannst. Zusätzlich spielen natürlich auch persönliche Vorlieben eine Rolle.
Die Fragen, die du hier beantworten musst: Möchte ich lieber aufwendiger und dafür performanter, oder eher weniger performant programmieren und dafür eine große Komfortabiltität genießen können? Willst du letzters, sollte C# deine Wahl sein, ansonsten C++.
Ich würde dir allerdings, empfehlen auch mal die Wikipedia-Seiten zu
C#/
.NET bzw.
C++ anzugucken.
Besonders interssant ist dahingehend folgendes:
Wikipedia hat gesagt.:
Ein wesentlicher Unterschied zwischen diesen Sprachen und C++ besteht darin, dass C++ über generische Sprachmerkmale (Templates) verfügt. Es gibt zwar in Java eine generischen Spracherweiterung und bei C# wird an ebensolcher (s. generischer Typ) gearbeitet (Stand: 2004), die Entwicklung geht dort aber in eine etwas andere Richtung als bei C++.
Gerade die generische Programmierung macht aber C++ zu einem mächtigen Programmierwerkzeug. Während die objektorientierte Programmierung in Java und C# als der Gipfel der vorhandenen Abstraktionsmechanismen angesehen wird, ist diese Art der Programmierung in C++ rückläufig. So werden tiefe Klassenhierarchieen vermieden, und zu Gunsten der Effizienz und der Minimierung des Ressourcenverbrauchs verzichtet man in vielen Fällen auf Polymorphie, dem Kernmechanismus der objektorientierten Programmierung. Auch in Punkto Wiederverwertbarkeit einmal kodierter Algorithmen übertreffen generische Techniken nach Meinung vieler Fachleute die objektorientierte Programmierung.
@Vorposter
Es dreht sich hier nicht um die Frage C oder C#, sondern vielmehr um die Frage nach C# und C++! Das ist ein großer Unterschied.
Ich würde dir so oder so dazu raten, mit C anzufangen, einfach schon mal deshalb, da der Sprachumfang nicht so groß ist wie der in C++.
Es ist sicherlich keine verlorene Zeit C zu machen, is jedoch deine entscheidung
Das stimmt so nicht. Gerade das Wissen, welches du durch C erlangst, kann bei erlenen von C++ hinderlich sein. Es ist schwer sich von einmal erlenten Paradigmen zutrennen. Wächst man programmiertechnisch sozusagen direkt mit C++ und der Objektorientierung auf, hat man es wesentlich einfahcer.
C wird soweit ich weis kaum verendet, so ziemlich die wichtigste Anwendung dafür sind zB Gameboyspiele
Mit C++ kann man halt schon einiges mehr machen (beispielsweise Hardwarenahes Proggen)
Hardware nahes Programmieren ist ebenso mit C möglich. Es gibt natürlich
![Warnung (!) (!)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
auch wichtigere Anwendungen für C. Beispielsweise ist Windows oder auch Linux in großen Teilen in C geschrieben; was die Hardwarenähe beweisen dürfte.
Nur wird heute mit C kaum mehr etwas gemacht, da es wesentlich bessere/schönere Sprachen gibt, die die gleiche Performanz liefern.