C++ vs C#
-
Hallo,
ich programmiere jetzt seit ca 2 Jahren (also noch relativ neu) und habe bisher C# für jede meiner Anwedungen benutzt.
Ich dachte C# hat den Vorteil von Codingspeed / Fehlerunanfälliger / Compiletime.
Meiner meinung war der Anwedungsbereich für C# ganz klar Highlevel, also alle möglichen everday Anwendungen. Ich dachte C++ ist mehr für lowlevel Anwendungen wie zB Engines etc.
Doch nach einigen Beiträgen auf StackOverFlow bin ich etwas verwirrt.
Anscheinend hat C++ den selben Codespeed with C#.
Der enzige Nachteil wäre kein richtig funktionierndes "Intellisense".Außerdem verwirrft nie neue Unreal Engine 4 sogar ihr Scriptingsystem und soll mit 100% c++ arbeiten.
Ich frage mich nur , falls man wirklich mit C++ so schnell und einfach programmieren kann, warum sollte es dann Sprachen wie Lua etc geben ?
Wie unterscheidet sich .Net Lib eigentlich von den C++ lib ?
Was sind denn nun die wirklichen Anwendungsgebiete von C++ / C# ?
-
kantaki schrieb:
Anscheinend hat C++ den selben Codespeed with C#.
Der enzige Nachteil wäre kein richtig funktionierndes "Intellisense".Kenne mich in C++ nicht wirklich aus, aber ich vermute, das hängt weniger mit der Sprache, sondern eher mit verbreiteten Libs wie QT oder Boost zusammen.
-
c++ gibt es doch schon recht lange , warum gibt es keine einheitliche lib ? wie zb .NET
ich habe mir eben dieses video angesehen
C++ and Beyond 2011: Herb Sutter - Why C++?
http://channel9.msdn.com/posts/C-and-Beyond-2011-Herb-Sutter-Why-CEs hat den anschein das C++ immer mehr in die Richtung => Produktivität geht.
-
kantaki schrieb:
c++ gibt es doch schon recht lange , warum gibt es keine einheitliche lib ? wie zb .NET
Bei C# macht Microsoft die Library. C++ ist da unabhängiger.
-
Das hat nicht nur mit Intellisense zu tun. Ich würde sagen, kleinere Anwendungen kann man mit C# auf jeden Fall deutlich schneller schreiben und besser warten. Und mit kleineren Anwendungen meine ich auch 90% der Standard Software, die kleinere/mittelgroße Softwaredienstleister schreiben. Bei größeren Projekten relativiert sich der Vorteil und dann kann C++ auch seine Stärken ausspielen.
-
C+# ist definitiv besser
-
Mechanics schrieb:
Das hat nicht nur mit Intellisense zu tun. Ich würde sagen, kleinere Anwendungen kann man mit C# auf jeden Fall deutlich schneller schreiben und besser warten. Und mit kleineren Anwendungen meine ich auch 90% der Standard Software, die kleinere/mittelgroße Softwaredienstleister schreiben. Bei größeren Projekten relativiert sich der Vorteil und dann kann C++ auch seine Stärken ausspielen.
Etwas schneller gehts schon, aber deutlich? C# erledigt auch nicht alles.
Alle Sprachvergleichsthreads die ich bis jetzt gesehem habe enden böse. Wahrscheinlich auch dieser.
-
IrgendeinName schrieb:
Etwas schneller gehts schon, aber deutlich? C# erledigt auch nicht alles.
Das kommt auf die Projektgröße an. Wenn es um ein zwei Mannwochen Projekt geht, lohnt es sich nicht mit C++ anzufangen. Da ist man mit C# schon lang fertig, bis man mit C++ die Buildumgebund eingerichtet und die ganzen benötigten Libraries installiert hat. Dann gibt es grad im Enterprise Bereich einfach wesentlich mehr Libraries für Java/.NET, als für C++. Wenns überhaupt was für C++ gibt, dann ist es oft veraltet oder hässlich. Und man kann mit C# dann oft ganz einfach irgendwelche netten Extrafeatures hinzufügen. Bei solchen Anwendungen sehe ich keinen Sinn, C++ einzusetzen.
-
:schland: Es ist eigentlich ganz einfach: Es kann nie schaden sich in C++ einzuarbeiten. Wenn du das tust, kannst du dir eine eigene Meinung bilden. :schland:
schrieb:
C+# ist definitiv besser
-
Steffo schrieb:
Es ist eigentlich ganz einfach: Es kann nie schaden sich in C++ einzuarbeiten. Wenn du das tust, kannst du dir eine eigene Meinung bilden
An sich gebe ich dir absolut Recht und halte auch nicht viel von Informatikern, die z.B. nur Java können. Aber ich muss auch sagen, es ist in der heutigen Welt kein Muss, C++ zu können. Es gibt viele Informatiker, die können das nicht und können damit auch nichts anfangen. Wenn man damit glücklich ist, sein Leben lang Enterprise Anwendungen in Java oder C# zu schreiben, dann muss man sich C++ auch nicht unbedingt antun. Wenn man das nicht freiwillig macht, wird man das eh nicht verstehen und nicht mögen.
-
Mechanics schrieb:
An sich gebe ich dir absolut Recht und halte auch nicht viel von Informatikern, die z.B. nur Java können.
Ich halte auch nichts von Informatikern, die sowohl Java als auch C++ und C# können. Ist doch alles 3 so gut wie dasselbe...
-
gastantwort schrieb:
Mechanics schrieb:
An sich gebe ich dir absolut Recht und halte auch nicht viel von Informatikern, die z.B. nur Java können.
Ich halte auch nichts von Informatikern, die sowohl Java als auch C++ und C# können. Ist doch alles 3 so gut wie dasselbe...
Mit Java und C# greift dein Argument vielleicht, aber auf C++ hat ein ganz anderes Spektrum an Anwendungsgebieten und ganz andere Codingstile.
In Java wirst du wohl kaum RAII brauchen, oder?
Wenn ich drüber nachdenke, bräuchte ein Informatiker eigentlich nur Pseudocode. Damit kann er ja alles modellieren. Das kann dann ein Code-Monkey abtippen.
-
Ähm, Ihr fangt an und vergleicht die Sprachen miteinander. Eigentlich wollte ich nur meine Fragen im ersten Post beantwortet haben
-
Deine anderen Fragen wurden ja quasi schon beantwortet, also wegen den Skriptsprachen und .Net:
Skiptsprachen kann man dazu verwenden, um Komponenten zu trennen, z.b die KI von der Engine. Außerdem bietet man Moddern eine schnelle Möglichkeit, Komponenten zu entwerfen. Nicht jede Firma wird Epics Weg gehen..Net unterscheided sich sehr stark von der C++ STL, falls du die gemeint hast.
Denn: Es ist eine Plattform! Keine Lib.
-
Warum sollte ein Informatiker mehr können müssen als Java, wenn er nicht gerade ein Programmieräffchen ist? Informatiker sind für mich spezialisierte Mathematiker und keine Programmierer.
-
IrgendeinName schrieb:
Deine anderen Fragen wurden ja quasi schon beantwortet, also wegen den Skriptsprachen und .Net:
Skiptsprachen kann man dazu verwenden, um Komponenten zu trennen, z.b die KI von der Engine. Außerdem bietet man Moddern eine schnelle Möglichkeit, Komponenten zu entwerfen. Nicht jede Firma wird Epics Weg gehen..Net unterscheided sich sehr stark von der C++ STL, falls du die gemeint hast.
Denn: Es ist eine Plattform! Keine Lib.okay das heißt:
Wenn ich zb A* für CryEngine implementiere, baue ich mir die basis in c++. zb
getpath() findpath() etcWenn ich nun eine AI baue die mein Pathfinding benutzen soll, kann ich funktionen aus c++ in einer script sprache miteinbinden (zb lua)
Richtig ?----
Wie gut funktioniert denn "Intellisense etc" für C++ im vergleich mit C#/Java etc ?
-
Ethon schrieb:
Warum sollte ein Informatiker mehr können müssen als Java, wenn er nicht gerade ein Programmieräffchen ist? Informatiker sind für mich spezialisierte Mathematiker und keine Programmierer.
Softwaretechnik hat eher weniger mit Mathematik zu tun.
-
Ethon schrieb:
Warum sollte ein Informatiker mehr können müssen als Java, wenn er nicht gerade ein Programmieräffchen ist?
Was machen Programmieräffchen?
-
Bananen schälen und dann das Innere in die Kühlungsöffnung des Laptopts drücken.
-
Ethon schrieb:
Warum sollte ein Informatiker mehr können müssen als Java, wenn er nicht gerade ein Programmieräffchen ist? Informatiker sind für mich spezialisierte Mathematiker und keine Programmierer.
Sorry, ich bin Informatiker und programmiere sehr gern in C++. Ich schreibe guten, wartbaren Code fuer eingebettete Systeme. Das wuerde ich keinem Programmieraffen ueberlassen. Und mit Java ist echt kein Blumentopf zu gewinnen.
-
knivil schrieb:
Das wuerde ich keinem Programmieraffen ueberlassen.
Es gibt gegenwärtig keine sinnvolle Arbeitsteilung zwischen einem reinen Informatiker und einem reinen Programmierer.