lama007
OC Addicted
|
Kann mir jemand kurz die wesentlichen Vor- und Nachteile von C, C++ und C# sagen?
|
T3XT4
Beißer
|
Meinst die die Vor-/Nachteile untereinander oder gegenüber anderer Programmiersprachen?
|
robot
Bloody Newbie
|
C++ und C# sind beide OOP's (object oriented programing languages). C#: - arbeitet sehr gut zusammen mit .NET - handelt read/write properties viel sauberer als java - hat eine große auswahl an software libraries C++ - hat bessere leistung als C# - es ist viel mehr kraftvoll als VB im abstrakten bereich (obwohl ich nicht entscheiden kann ob VB oder C++ mir besser gefällt) ich habe mich nie mit C beschäftigt, ich gehöre nicht zu diejenigen, die von C zu C++ umgestiegen sind... C# im vergleich zu java ist viel flexibler, und auch für den programmier freundlicher (java kann echt frustrierend werden).
|
ica
hmm
|
c + läuft so ziemlich überall (pc, µprozessoren usw.) - nicht objektorientiert
c++ + objektorientiert, sehr mächtig, sehr effizient +/- etliche gui libraries verfügbar - sehr lange lernphase, sehr komplex
c# + modern, objektorientiert, einfache und saubere gui ansprechung (winforms) - lauft nur unter windows (mono ignorier ich derzeit noch)
|
Master99
verträumter realist
|
für programme die nur unter windows laufen sollen/müssen und wo es nicht um das letze promille performance geht is c# eine sehr komfortable möglichkeit, die sich zudem auch relativ flott erlernen lässt und dem programmierer viel arbeit abnimmt.
da ms aber nur einen teil von .net offengelegt hat somit die großspurig angekündigte plattformunabhängigkeit kein rückgrat hat musst du wohl auf was anderes zurückgreifen wenn du auch für nicht-ms-plattformen entwickeln willst.
d.h. es bleiben IMHO hauptsächlich C++ oder Java übrig... (beides mit vor und nachteilen)
|
M.I.P.S.
Big d00d
|
Ich nehme mal an, es geht darum, welche Sprache du lernen sollst.
C hat den Vorteil, daß du einen Einblick bekommst, wies quasi unter der "Motorhaube" zugeht. Ist vielleicht ein wenig mühsam zu lernen, aber du hast nachher eine Ahnung worauf du da eigentlich arbeitest. Außerdem würde ich sagen, ist eine prozedurorientierte Programmiersprache für den Anfang besser, da ich denke, daß es intuitiver als das objektorientierte Paradigma ist (entgegen vieler Behauptungen). Wenn du OOP nicht wirklich gut erklärt bekommst, sind die Häh-Erlebnise vorprogrammiert.
C# hat den Vorteil, daß man recht bald brauchbare Apps auf die Beine stellen kann (was der Motivation zuträglich sein kann). Dafür mußt du dich mit OOP herumschlagen. Portierbarkeit ist am Anfang wenn man eine Sprache lernt egal und daher kein Ausschlußgrund.
Von C++ würde ich abraten, da es hauptsächlich die Nachteile von C und C# vereint (und noch einige zusätzlich in den Topf haut, z.B. multiple Vererbung)
Ach ja, vor einiger Zeit gabs mal im c't einen Vergleich zwischen mehreren OOP-Sprachen. Iirc hatte C++ in Sachen Performance nur beim Numbercrunching einen Vorsprung vor C#. In allen anderen Belangen wurde es von C# abgehängt.
|
mat
AdministratorLegends never die
|
c/c++ "C makes it easy to shoot yourself in the foot, C++ makes it harder, but when you do, it blows away your whole leg"
c# leicht zu lernen / schönere syntax als java / windows only
|
joken9seven
Addicted
|
Wär ganz interessant zu wissen, auf welchen Plattformen es laufen soll. Denn wennst managed C++ (.Net Umgebung) verwendest, dann ist das Ergebnis bei C# und C++ das gleiche. Aber zum Anfangen würde ich auch eher C# empfehlen. C++ kann teilweise echt frustrierend sein und würde ich daher nur einsetzen, wenns sein muss. Dass C++ übrigens die Nachteile von C und C# enthält ist imho ziemlicher Schwachsinn. Unter Linux kannst außerdem schwer an Vergleich machen (Mono?).
|
M.I.P.S.
Big d00d
|
Dass C++ übrigens die Nachteile von C und C# enthält ist imho ziemlicher Schwachsinn. Dann zähl mal ein paar Punkte auf, in denen C++ sowohl C als auch C# überlegen ist...
|
Crash Override
BOfH
|
Objektorientierte Plattformportierbarkeit ist dder Vorteil von C++.
|
mat
AdministratorLegends never die
|
was auch immer du damit meinst.. es ergibt keinen sinn. wie kannst du c++ gegen beide sprachen antreten lassen? jede sprache hat ihre daseinsberechtigung und c++ hat eher vorteile beider sprachen als umgekehrt. mit c++ kann man sowohl jedes design pattern implementieren, daher gut designte große und wartbare softwareprojekte verwirklichen, als auch jedes detail der implementierung selber in die hand nehmen - von file io bis zu memory handling. sag jetzt nicht das kann man in c# auch sonst muss ich bei den beispielen ins detail gehen der aussage von j9seven kann ich mich daher nur anschliessen..
|
M.I.P.S.
Big d00d
|
An sich ja (ist aber der einzige Punkt, der mir auf die schnelle einfällt)
Da ich aber noch immer davon ausgehe, daß er eine der Sprachen lernen will würde ich Portierparkeit in dieser Hinsicht (noch immer) als unwichtig ansehen.
@lama007: Schreib vielleicht mal, wofür du das brauchst, bevor wir uns hier gegenseitig den Kopf abreißen über Dinge, die komplett irrelevant sind.
|
joken9seven
Addicted
|
C++ -> in Maschinensprache compiliert C# -> Compilierung vom Quellcode in intermediate language und dann JIT in native Code Dadurch ist eben C++ bei z.B. maschinennaherer Programmierung effizienter. Weiters hab ich die Möglichkeit, die Speicherverwaltung bei C++ selbst in die Hand zu nehmen. Bei bedarf kann ich auch bei C++ einen Garbage Collector integrieren. Wenn wirklich sauber arbeitet, sollte es unter C++ auch keine Speicherprobleme geben. Und auch der GC von .Net kann seine Probleme mit sich bringen. Hatten bezüglich Memory Leaks in C# einen Microsoft Consaltent beauftragt. Aber mittlerweile sollte es in .Net 2.0 nicht mehr auftreten. Unter Linux gibts, wenn man objektorientiert programmiert, nicht wirklich eine Wahl außer C++. (soll einen Vorteil darstellen ) Wenns um Win GUI Entwicklung geht würd ich sowieso .Net (mit C# natürlich) verwenden. MFC is ein ziemlicher Krampf.
|
mat
AdministratorLegends never die
|
Wenns um Win GUI Entwicklung geht würd ich sowieso .Net (mit C# natürlich) verwenden. MFC is ein ziemlicher Krampf. probier mal ATL/WTL, du wirst MFC lieben
|
joken9seven
Addicted
|
probier mal ATL/WTL, du wirst MFC lieben stimmt, es geht noch schlimmer.
|