Zum Inhalt springen

Unterschied zwischen c++ und c# ??


kartoffeln

Empfohlene Beiträge

Originally posted by honey

c++ ist eine etablierte OO-sprache, während c# wie eine mischung aus java und c++ aussieht und mit sicherheit nicht lange standardisiert bleibt, da sie von microsoft ist.

Moment da verstehe ich par Sachen nicht :

c++ ist eine etablierte OO-sprache, -> ???

und mit sicherheit nicht lange standardisiert bleibt, da sie von microsoft ist -> ???

kannst Du es genauer beschreiben ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by JeanLucPicard

C# ist von microsoft meint sie!

C++ ist standard. Microsoft versucht was neues zu drehen, aber das wird sicher kein standard werden.

mehr stand da nicht.

Ich denke es geht hier um inhaltliche unterschiede wie zb. Pointer bei c++ usw. und nicht ab es von Microsoft ist oder nicht das weis glaube ich jeder oder ??

Link zu diesem Kommentar
Auf anderen Seiten teilen

Um jetzt mal von der Microsoft-Schiene wegzukommen, denn ich denke, dass das nicht der wichtigste Unterschied ist:

  • C# hat Parallelen zu Java, z.B. durch die Syntax von API-Methodenzugriffen, den Garbage Collector und die Tatsache, dass ein Zwischencode erstellt wird.
  • C# enthält als Sprache eine umfangreiche API. Bei C/C++ ist so etwas immer nur aufgesetzt.
  • der C#-Compiler erstellt (wie alle .net-Compiler) einen Zwischencode. Dieser ist nur auf Rechnern ausführbar, auf denen das .net Framework installiert ist. Es ist sozusagen die Runtime-Umgebung für C# (und damit auch gleichzeitig für alle anderen .net-Sprachen). Leider ist diese Umgebung ziemlich groß.
  • Das Problem der Portierbarkeit verlagert sich von der Codeebene bei C/C++ auf die Fragestellung bei C#, ob auf dem Zielsystem das .net-Framework läuft. Der Vorteil für C# ist hier, dass nicht nur der Code selbst, sondern auch das "fertige" Programm portierbar ist.
  • Es gibt Zeiger in C#, allerdings muss man solchen Code explizit als "unsafe" deklarieren. Es ist allgemein nicht empfehlenswert, weil man damit auch den Garbage Collector aushebelt.
  • Ob ein Parameter by value oder by reference übergeben wird, hängt bei C# ausschließlich vom Datentyp ab.
  • Sprachübergreifendes Debugging zwischen .net-Sprachen ist problemlos möglich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

also meiner meinung nach ist die frage nach ms die grundlegendste frage bei allen .net-angelegenheiten. warum gibt es c#? wer hat es denn ins leben gerufen?

ms will mit der sogenannten ".net-offensive" doch nur einen weiteren absatzmarkt gewinnen. und zwar jetzt nicht mehr nur unter windows, sondern auch auf anderen systemen. und deshalb haben sie das konzept von java - portabilität - aufgegriffen, ein framework entwickelt und erzählen nun, wer für .net entwickelt, bekommt seine programme überall zum laufen. es gibt ja bereits eine runtime environment für macos. aber - und da sieht man die taktik von ms - kein sdk. das heisst entwickeln muss man trotzdem unter windows. und für linux wird das auch so sein (ms will doch wirklich auch auf linux mit .net gehen, aber das wird sicher nix).

und am ende wird es wie mit java laufen, wo ja ms auch seine eigene vm gebastelt hat - ms wird soviel wie möglich funktionen bauen, die nur unter windows laufen, so dass es dann heisst "um die volle funktionalität ihrer .net-anwendungen ausnutzen zu können, benutzen sie bitte windoofs #%$@".

und deshalb ist die frage nach ms, bei c# von grundlegender bedeutung. ich will jetzt nicht sagen, man soll nicht in c# entwickeln. ich hab schon ein paar zeilen geschrieben und es war okay. aber ehrlich gesagt hab ich keinen grund gesehen von c++ auf c# umzusteigen. anders als z.b. von vb6 auf vb.net (hier gibt es echte, grosse fortschritte, aber vb is ja eh nur für windows, so dass man weiss worauf man sich einlässt).

ich würde sagen, wer vorhat, vielleicht nicht nur für windows sondern auch für andere systeme mal zu entwickeln, sollte sich an c++ halten, da man sich sonst zu sehr auf ms festlegt. wer nur für windows entwickelt sollte ausprobieren und sehen, womit er/sie besser klarkommt. am ende ist es dann eine frage des geschmacks.

cul8r

se.rie.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ se.rie.

Das war aber jetzt ne ganze Menge OT.;)

Also wie ich das sehe ist C# sehr gut dafür geeignet um Internetanwendung zu

schreiben und ersetzt somit evtl. so Sprachen wie Java,Perl oder Asp.

Bei solchen Anwendungen müßte ja auch das Problem mit dem Framework gelöst

sein, da es ja eigentlich nur auf dem Server installiert sein müßte, oder?

Wer "normale" Programme schreiben will sollte glaube ich lieber bei c/c++ bleiben.

Gruß

Guybrush

Link zu diesem Kommentar
Auf anderen Seiten teilen

recht hast, vom prinzip her sind ja alle .net-sprachen darauf angelegt internet-anwendungen zu entwickeln, die auf einem server ausgeführt werden. aber natürlich aknn man mit ihnen auch ganz normale anwendungen entwickeln.

nur für mich persönlich stellt sich die sinnfrage. wozu noch eine serverseitige entwicklungssprache. wir haben java, perl, aps, php .......

ich denke mal die .net-sprachen eigenen sich dann gut auf windows-servern, aber ich würde z.b. nie auf meinem linux-webserver serverseitigte anwendungen in einer .net-sprache entwickeln. ich hab doch perl, php, java, ssi ...... und die haben sich mehr als bewährt, vor allem php.

wie ich schon sagte, am ende ist es wohl mehr eine frage des geschmacks. wer mit windows-severn und c# oder vb.net oder auch asp.net besser klarkommt ... bitte dann los. vielfalt ist doch das a und o im internet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein paar Zitate und meine Kommentare dazu:

--> ...sieht man die taktik von ms - kein sdk. das heisst entwickeln muss man trotzdem unter windows. und für linux wird das auch so sein (ms will doch wirklich auch auf linux mit .net gehen, aber das wird sicher nix)...

Argbeil: Das ist nicht korrekt, die Linux Community will auf .NET gehen und eigentlich ging es hier ja um C# und nicht um .net. Wenn du unter Linux für .NET entwickeln willst kannst du die neueste Kylix Version von Borland verwenden, es gibt also sehr wohl eine IDE.

--> und deshalb ist die frage nach ms, bei c# von grundlegender bedeutung. ich will jetzt nicht sagen, man soll nicht in c# entwickeln. ich hab schon ein paar zeilen geschrieben und es war okay. aber ehrlich gesagt hab ich keinen grund gesehen von c++ auf c# umzusteigen. anders als z.b. von vb6 auf vb.net (hier gibt es echte, grosse fortschritte, aber vb is ja eh nur für windows, so dass man weiss worauf man sich einlässt).

Argbeil: Ich denke der Unterschied zwischen Visual C++ und Visual C# ist in erster Linie die Möglichkeit des Rapid-Application-Development die Microsoft bisher nur in VB hatte.

--> ich würde sagen, wer vorhat, vielleicht nicht nur für windows sondern auch für andere systeme mal zu entwickeln, sollte sich an c++ halten, da man sich sonst zu sehr auf ms festlegt. wer nur für windows entwickelt sollte ausprobieren und sehen, womit er/sie besser klarkommt. am ende ist es dann eine frage des geschmacks.

Argbeil: Das klingt ja ganz lustig, aber von welchem C++ redest du denn? Visual C++? Versuch mal ein Programm das die MFC verwendet, oder auch einfach nur in reinem C++ für Windows, also mit der Win32API entwickelt wurde zu portieren, das meinst du doch nicht ernst oder? Beim C++ Builder stellt sich das gleiche Problem, sobald du Forms verwendest bist du an ein System gebunden und kannst nur durch große Mühe auf ein anderes portieren, DA hilf .net Technologie, du musst nicht mal neu Compilieren.

-->Wer "normale" Programme schreiben will sollte glaube ich lieber bei c/c++ bleiben.

Argbeil: Was sind denn normale Programme? Ich denke das kommt auch drauf an wie viel Zeit man für die Entwicklung hat, es geht mit C# durch das Framework und die überragende IDE mit RAD Features einfach wesentlich schneller.

Zu den Unterschieden zwischen C++ und C# um die Frage zu beantworten und .net mal außen vor zu lassen:

C# hat :

- Objektorientierung der 3. Generation ( Alles ist ein Objekt, Interfaces usw. )

- Typsicherheit

- Automatische Speicherverwaltung

- Keine Header Dateien

- Reduzierung der Programmierfehler durch striktere Regeln ( Zwingede initialisierung, case muss break enthalten usw. )

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...