C++? C#? Pythong?

  • Ersteller Ersteller iKernelOS
  • Erstellt am Erstellt am
CryNickSystems schrieb:
Compiler kriegen üblicherweise den Assemblercode besser hin, als ein Mensch ihn schreiben könnte - eben aufgrund der krassen Optimierungen, die da gefahren werden (und damit meine ich vorallem bei kommerziellen Compilern á la Intel Compiler, etc.).
Etwas pauschalisierte Aussage, jemand der wirklich Assembler kann optimiert Durchlaufzeitkritische Abschnitte idR besser als ein Compiler. Ist aber a) unglaublich aufwendig und b) gibt es nicht viele auf die das Anforderungsprofil passt. Ich habe das früher für gutes Geld gemacht, aber es ist eine unglaubliche Fisselsarbeit und macht einen nicht reich. Von daher würde ich heute auch auf einen Compiler setzen. Einfach auch weil genug CPU Power vorhanden ist und die geringen Performance Vorteile von handpolierten Code nicht mehr wirklich ins Gewicht fallen.
 
andy_m4 schrieb:
Logisch erhöhen sie die Compilezeiten. Schließlich veranlassen Templates den Compiler Code zu erzeugen den er dann wiederum behandeln muss.
Die Compilezeiten von C++ sind sowieso schon unterirdisch. Freiwillig tut sich das doch keiner an.
Weil man natürlich Dinge Programmiert um am Ende gute Zeiten beim kompilieren zu haben und ich dachte immer das man als Resultat schnelle Software haben möchte :rolleyes:
Aber ja die für kompilieren benötigte Zeit ist interessant, aber wenn mich schon der Compiler vor Fehler bewahren kann oder mir dadurch bessere Ergebnisse ausspuckt, dann Opfere ich lieber Zeit beim Kompilieren als beim ausführen der Software.

andy_m4 schrieb:
Was ist denn das für ein Vergleich? In die STL wurde echt viel investiert und Du vergleichst das mit irgendeinem dahergelaufenen C Programmierer.
Wenn jemand hier ein Spiel entwickeln möchte, ja doch, dann vergleiche ich das, den viele der hierzu gängigen Sachen sind in der STL schon vorhanden und wenn derjenige auch noch nach der Sprache fragt, wird er wohl kaum für diese Dinge schnelleren Code schreiben wie die Dinge welche in der STL sind.

andy_m4 schrieb:
Wo es zum Beispiel auf Geschwindigkeit ankommt ist z.B. in Betriebssystemkernel. Dummerweise sind die meistverbreitetsten Kernel alle in C geschrieben (zumindest zum größten Teil). Entweder sind die Entwickler alle durch die Bank weg Trottel oder sie haben sich tatsächlich dabei was gedacht. :-)
Ich habe nie behauptet es für C keine sinnvolle Anwendungsgebiete gebe oder das C++ immer schneller ist als C oder so einen Quatsch. Wenn ich einen OS Kernel schreiben würde, würde ich dies vermutlich auch mit C machen. Wenn ich aber ein Spiel entwickeln würde, dann würde ich eben C++ nehmen. Guter C und C++ Code nehmen sich was Performance angeht heute im Grunde nichts. Was aber einen unterschied macht ist ob ich das was ich grade Entwickeln möchte verständlich durch Code abbilden kann und wenn die Sprache schon Dinge mitliefert die dies tun dann bietet mir das nun mal den Vorteil das ich schneller ans Ziel komme. Mir ist es da ziemlich Latte ob das nun C, C++, C#, Java, Python, Perl oder sonst was ist. Ich arbeite Hauptsächlich mit C++ und Java, habe auch schon Dinge C, C#, Python und Perl umgesetzt.

andy_m4 schrieb:
Man gut, dass Du Deine Aussage gleich noch mit ein paar Beispielen untermauert hast. Sonst könnte man denken, das wär ne haltlose Behauptung. :-)
ähm z.B. den Beitrag den asdfman da verlinkt hat? Da gibt es noch mehr solcher Praxisferner Sachen, aber ich habe weder Zeit noch Lust diese jetzt noch mal rauszusuchen.
 
Falls du spiele entwickeln willst c# oder java wobei es wurscht ist da der Syntax fast identisch ist.
Falls du eine eigene Engine entwickeln willst c++ wobei das Schwachsinn wäre da es für jede Projektgröße bereits eine passende gibt...
 
Fonce schrieb:
Weil man natürlich Dinge Programmiert um am Ende gute Zeiten beim kompilieren zu haben und ich dachte immer das man als Resultat schnelle Software haben möchte :rolleyes:
Na am besten beides.
Wobei schnelle Compilezeit wichtig bei der Entwicklung sein kann. Weils eben schneller von der Hand geht. Wobei die Compilezeit ja durchaus C++ geschuldet ist. In anderen Sprachen erreicht man ähnlich schnelle Kompilate nur in kürzerer Zeit.

Fonce schrieb:
Aber ja die für kompilieren benötigte Zeit ist interessant, aber wenn mich schon der Compiler vor Fehler bewahren kann oder mir dadurch bessere Ergebnisse ausspuckt, dann Opfere ich lieber Zeit beim Kompilieren als beim ausführen der Software.
Wäre ja z.B. nett wenn der Compilevorgang beim entwickeln schneller ist dafür aber weniger optimiert. Und dann wenn ich ein Release haben will, kann er ja von mir aus ruhig 3 Stunden compilieren und dafür ein anständiges (sprich schnelles) Kompilat rausspucken.


Fonce schrieb:
Wenn jemand hier ein Spiel entwickeln möchte, ja doch, dann vergleiche ich das, den viele der hierzu gängigen Sachen sind in der STL schon vorhanden und wenn derjenige auch noch nach der Sprache fragt, wird er wohl kaum für diese Dinge schnelleren Code schreiben wie die Dinge welche in der STL sind.
...
Wenn ich aber ein Spiel entwickeln würde, dann würde ich eben C++ nehmen.
Man kann auch für ein Spiel einfach eine vorhandene Engine nehmen die dann mit Lua, Python, whatever geskriptet wird, was ja auch ein durchaus gängiger Weg ist.
Aber selbst für eine Engine ist C++ nicht zwangsläufig gesetzt.


Fonce schrieb:
Ich habe nie behauptet es für C keine sinnvolle Anwendungsgebiete gebe oder das C++ immer schneller ist als C oder so einen Quatsch.
Ok. Klang ein wenig so.



Fonce schrieb:
Wenn ich einen OS Kernel schreiben würde, würde ich dies vermutlich auch mit C machen.
Vermutlich wäre hier tatsächlich C++ die bessere Fall, weil es mehr Komfortfunktionen bietet. Die vorhandenen Kernel stammen aber eben noch aus Zeiten, wo C dafür üblich war. Und jetzt muss man eben damit klarkommen was auch irgendwie geht.



Fonce schrieb:
ähm z.B. den Beitrag den asdfman da verlinkt hat? Da gibt es noch mehr solcher Praxisferner Sachen, aber ich habe weder Zeit noch Lust diese jetzt noch mal rauszusuchen.
Schon gut. Mich stört es bloß immer, wenn einfach irgendwelche Behauptungen in den Raum geworfen werden ohne die zu begründen. Das riecht immer arg nach trolling.
 
@andy_m4: Leider haben es Module immer noch nicht in den c++ standard geschaft, aber wenn compilezeit bei deinen Projekten ein Problem ist würde ich mir mal deren experimentelle Unterstützung in VS und Clang anschauen (vermutlich nur für Hobbyprojekte praktikabel).
 
Zurück
Oben