Was die Wahl der Sprache betrifft, so stimme ich zu, dass es dafür noch zu früh ist. Aber ich möchte doch eine persönliche Erfahrung diesbezüglich mit euch teilen: Ich würde niemals mehr einen Renderer in C# schreiben. Und der Hauptgrund dafür ist nicht, wie viele jetzt natürlich gleich denken, die Performance. Die ist auch ein Grund, aber die Performance war bisher eigentlich über mindestens 90% des Weges immer ausreichend. Ein wirklich großes Problem ist imo das Ressourcenmanagement. Der Garbagecollector macht den Umgang mit unmanaged Ressourcen, wie sie in dem Zusammenhang einfach allgegenwärtig sind, zur unglaublichen Qual. Hätte ich den ganzen Renderer damals in C++ geschrieben und nur die Oberfläche in C#, wär das Ding vermutlich sehr viel sauberer und vor allem wesentlich weniger verbugged gewesen. C# ist ideal für die schnelle Entwicklung interner Tools (Map Editor etc.) und dafür würde ich es auch empfehlen; aber wenn ihr keine fertige Engine oder sonstige high-level Libraries verwenden wollt, dann wäre mein Rat, zumindest den Unterbau in C++ zu schreiben. Und zwar weil das mit C++ meiner Erfahrung nach sehr viel einfacher, sauberer und sicherer geht als mit C#. Darauf aufbauend kann man ja durchaus mit C# arbeiten.
PS: Die Tatsache, dass man in C++ einfach sehr viel leichter optimieren kann, wenn das mal notwendig wird, sollte man auch nicht unterschätzen. Ich sagte, die Performance von C# war für mich bisher immer über mindestens 90% des Weges ausreichend...wenn man dann auf einmal gegen Ende des Projektes, wo es davor nie irgendwelche Probleme gab, völlig unvorhergesehen auf die Performanceschallmauer trifft und sich die letzten 10% des Weges mühsam gegen den GC erkämpfen muss, ist das auch nicht besonders angenehm, das könnt ihr mir glauben...
Das ist zumindest meine Erfahrung. Ich hab damals nur einen kleinen OpenGL Wrapper in C++/CLI geschrieben und ansonsten alles in C# und am Ende des Projektes hätte ich mir gewünscht, dass ich wesentlich mehr davon (nicht alles, aber mehr; im konkreten Fall z.B. gewisse Datenstrukturen, die sich in C# einfach nicht gut umsetzen lassen) in C++ geschrieben hätte...
Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von »dot« (17.10.2012, 01:52)