C++ vs C#



  • 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() etc

    Wenn 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.



  • C++ bietet die Möglichkeit, unter die Haube zu gucken und im low-Level Bereich Dinge anders als im "default-mode" zu machen. Das fängt an bei eigenen Allokatoren und hört bei Bitgefrickel nicht auf. An viele dieser low-level Features kommt man in den managed Sprache einfach nicht heran (ich schiebe für die Diskussion Java und die .NET-Sprachen mal in eine Schublade, da sie sich was solche Dinge angeht ähnlich genug sind). Man muss aber auch immer im Hinterkopf behalten, dass man für das Verlassen der hohen Abstraktionsebene ("über" der VM) einen Preis zu zahlen hat: in C++03 muss man sich zwangsläufig mehr Gedanken über Objektlebenszeiten, Speicherverwaltung und weiß der Henker was noch alles mache. Das hat sich in C++11 um einiges gebessert, dennoch ist die Abstraktionsebene nunmal eine andere als in C#.
    Wenn man eine Anwendung komplett in C# schreiben kann, ohne sich einen abzubrechen und ohne Performanceprobleme etc. zu bekommen, dann sollte man das auch tun. Das Codingtempo bekommt man mit der gleichen Sicherheit in C++ nicht ohne weiteres hin. Wenn die Sache kritischer wird, z.B. bei knappem Speicher im Embedded-Bereich oder anderen Problemen, bei denen man etwas tiefer in die Implementierungs-Trickkiste greifen muss, zeigt C++ dank der optionalen hohen Abstraktionsebene seine Stärken.

    lua ist ein ganz anderes Thema. Es ist nicht als eigenständige Programmiersprache konzipoert worden, sondern um schnell und einfach DSLs entwickeln zu können auf Basis eines Frameworks, das in einer GPL wie z.B. C oder C++ geschrieben worden ist. Das Beispiel von Kantaki geht schon gut in die Richtung.

    Der Clou ist, immer das richtige Werkzeug für den richtigen Job zu benutzen - und mehr als nur ein Werkzeug im Koffer zu haben, um mehr Jobs ordentlich und sauber erledigen zu können.



  • pumuckl schrieb:

    C++ bietet die Möglichkeit, unter die Haube zu gucken und im low-Level Bereich Dinge anders als im "default-mode" zu machen. Das fängt an bei eigenen Allokatoren und hört bei Bitgefrickel nicht auf. An viele dieser low-level Features kommt man in den managed Sprache einfach nicht heran (ich schiebe für die Diskussion Java und die .NET-Sprachen mal in eine Schublade, da sie sich was solche Dinge angeht ähnlich genug sind). Man muss aber auch immer im Hinterkopf behalten, dass man für das Verlassen der hohen Abstraktionsebene ("über" der VM) einen Preis zu zahlen hat: in C++03 muss man sich zwangsläufig mehr Gedanken über Objektlebenszeiten, Speicherverwaltung und weiß der Henker was noch alles mache. Das hat sich in C++11 um einiges gebessert, dennoch ist die Abstraktionsebene nunmal eine andere als in C#.
    Wenn man eine Anwendung komplett in C# schreiben kann, ohne sich einen abzubrechen und ohne Performanceprobleme etc. zu bekommen, dann sollte man das auch tun. Das Codingtempo bekommt man mit der gleichen Sicherheit in C++ nicht ohne weiteres hin. Wenn die Sache kritischer wird, z.B. bei knappem Speicher im Embedded-Bereich oder anderen Problemen, bei denen man etwas tiefer in die Implementierungs-Trickkiste greifen muss, zeigt C++ dank der optionalen hohen Abstraktionsebene seine Stärken.

    lua ist ein ganz anderes Thema. Es ist nicht als eigenständige Programmiersprache konzipoert worden, sondern um schnell und einfach DSLs entwickeln zu können auf Basis eines Frameworks, das in einer GPL wie z.B. C oder C++ geschrieben worden ist. Das Beispiel von Kantaki geht schon gut in die Richtung.

    Der Clou ist, immer das richtige Werkzeug für den richtigen Job zu benutzen - und mehr als nur ein Werkzeug im Koffer zu haben, um mehr Jobs ordentlich und sauber erledigen zu können.

    Danke für die ausführliche Anwort.

    Das Problem was ich gerade habe ist ich will mal in jede Sprache reinschauen um zu sehen welche Vorteile/ Anwedungsmöglichkeiten ich bekomme.

    Ich denke aber ich sollte jetzt erstmal Sprachen vermeiden die sich überscheiden wie zB c++ / c#.

    (ich bin c# programmierer)
    Ich denke das ich wahrscheinlich auf c++ "umsteigen möchte" (ich möchte eine sprache ersteinmal perfekt können)

    Benutzt ihr denn auch integrierbare Sprachen in C++ wie zB lua ? Ich denke nicht das man wirklich alles in c++ schreiben sollte.

    Deswegen denke ich das ich mir c++ anschauen werde + integrierbare scriptsprache (zB Lua)

    Würdet ihr das empfehlen ? oder haben scriptsprachen wie lua auch nachteile ?

    Gibt es alternativen zu Lua ? (für c++)
    Bin nicht so der fan von basic like syntax



  • kantaki schrieb:

    Gibt es alternativen zu Lua ? (für c++)
    Bin nicht so der fan von basic like syntax

    Kommt drauf an was du für Anforderungen hast.
    Spontan fällt mir mal zu den Stichwörtern C++, Lua und grausige Syntax als alternative Skriptsprache AngelScript ein.



  • Python wird auch gerne zum Testen verwendet, aber Lua ist technisch gesehen wirklich sensationell. Allein die Größe des Interpreters...



  • Kenner der Äffchen schrieb:

    Bananen schälen und dann das Innere in die Kühlungsöffnung des Laptopts drücken.

    Ich wollte beim Zoohändler ein Programmieräffchen kaufen, aber die hatten keines. Wo gibts die?



  • Nur auf Java oder in Indien erhaeltlich.



  • freiberuflicher berater schrieb:

    C+# ist definitiv besser

    Ein Kreis ist definitiv besser als ein Rechteck.



  • Gut dann werde ich mich die nächsten Jahre mal mit C++ und Lua beschäftigen.
    Auch wenn ich die Syntax von Lua einfach nur schrecklich finde , konnte ich nichts negatives über die Sprache finden.

    Außer vielleicht das alle Variablen global seien sollen. Mal schauen, nach ein paar Büchen bin ich schlauer 🙂

    Danke



  • kantaki schrieb:

    Gut dann werde ich mich die nächsten Jahre mal mit C++ und Lua beschäftigen.

    Was heißt hier beschäftigen? Ich kann ja noch verstehen, wenn man vorhat, sich jahrelang mit C++ zu beschäftigen. Aber die Syntax von LUA hat man in einer Stunde gelernt, und wenn man irgendwann mal aus irgendeinem Grund LUA als Scriptingsprache ins eigene Programm einbinden will, dann tut man das halt, fertig.



  • Mechanics schrieb:

    kantaki schrieb:

    Gut dann werde ich mich die nächsten Jahre mal mit C++ und Lua beschäftigen.

    Was heißt hier beschäftigen? Ich kann ja noch verstehen, wenn man vorhat, sich jahrelang mit C++ zu beschäftigen. Aber die Syntax von LUA hat man in einer Stunde gelernt, und wenn man irgendwann mal aus irgendeinem Grund LUA als Scriptingsprache ins eigene Programm einbinden will, dann tut man das halt, fertig.

    Habe mich wohl ein wenig unglücklich ausgedrückt.
    C++ werde ich intensiv lernen und mir nebenbei Lua anschauen.

    Gibt es eigentlich eine Art "C++ Blog" ?
    => tips , neue features , workflow etc



  • kantaki schrieb:

    Der enzige Nachteil wäre kein richtig funktionierndes "Intellisense".

    Du meinst CLI ? Bei C++ funktioniert die gut.



  • Bashar schrieb:

    knivil schrieb:

    Das wuerde ich keinem Programmieraffen ueberlassen.

    👍
    Es gibt gegenwärtig keine sinnvolle Arbeitsteilung zwischen einem reinen Informatiker und einem reinen Programmierer.

    Definiere bitte "reiner Informatiker" und "reiner Programmierer".



  • hustbaer schrieb:

    Definiere bitte "reiner Informatiker" und "reiner Programmierer".

    Wozu? Was damit gemeint ist, geht doch aus dem Kontext hervor.


Anmelden zum Antworten