"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

C, C++,c#

lama007 02.03.2006 - 16:05 4166 38
Posts

lama007

OC Addicted
Avatar
Registered: Mar 2002
Location: Austria
Posts: 851
Kann mir jemand kurz die wesentlichen Vor- und Nachteile von C, C++ und C# sagen?

T3XT4

Beißer
Registered: Jan 2003
Location: .
Posts: 3794
Meinst die die Vor-/Nachteile untereinander oder gegenüber anderer Programmiersprachen?

robot

Bloody Newbie
Registered: Mar 2006
Location: vienna, at
Posts: 5
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9820
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
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12684
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
Avatar
Registered: Mar 2002
Location: On the inside
Posts: 324
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

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
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
Avatar
Registered: Jan 2003
Location: vienna
Posts: 565
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. :bash: Unter Linux kannst außerdem schwer an Vergleich machen (Mono?).

M.I.P.S.

Big d00d
Avatar
Registered: Mar 2002
Location: On the inside
Posts: 324
Zitat von joken9seven
Dass C++ übrigens die Nachteile von C und C# enthält ist imho ziemlicher Schwachsinn. :bash:

Dann zähl mal ein paar Punkte auf, in denen C++ sowohl C als auch C# überlegen ist...

Crash Override

BOfH
Registered: Jun 2005
Location: Germany
Posts: 2951
Objektorientierte Plattformportierbarkeit ist dder Vorteil von C++.

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
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
Avatar
Registered: Mar 2002
Location: On the inside
Posts: 324
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
Avatar
Registered: Jan 2003
Location: vienna
Posts: 565
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

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
Zitat von joken9seven
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 :p

joken9seven

Addicted
Avatar
Registered: Jan 2003
Location: vienna
Posts: 565
Zitat von mat
probier mal ATL/WTL, du wirst MFC lieben :p

stimmt, es geht noch schlimmer. :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz