Ich dachte, alle Spiele werden mit C++ programmiert, oder werden jetzt schon einige mit C# programmiert?
Ich dachte, alle Spiele werden mit C++ programmiert, oder werden jetzt schon einige mit C# programmiert?
Das einzige Spiel in C#, das ich kenne, ist Arena Wars. Vor allem möchte ich aber anmerken, dass C# bzw. allgemein .NET praktisch nur für Windows halbwegs brauchbar ist und daran wird sich auch nicht viel ändern. Wenn man schnelle, portable Programme schreiben will, die überall laufen, dann gibt es außer C, C++ und vielleicht noch Python nicht sonderlich viele Möglichkeiten.
Zitat
Um es mit meinen eigenen Worten, zitiert aus einer Email, zu sagen:
Ach ja, als ehemaliger Student der Informatik: Ich mag C# nicht lieber als C++.Zitat
--
discipline and profession - power is nothing without control.
Verdammt, das muß ich meinem Prof sagen! Die Kurse Technische Informatik 1 und 2 müssen völlig umgekrempelt werden!
Und ich bin beeindruckt - Miguel de Icaza hat es nicht nur hingekriegt, Mono schneller als die C++-Runtime zu machen, sondern es auch noch auf jede einzelne Plattform zu portieren, für die man mit C++ kompilieren kann? Wow, wirklich beeindruckend.
Und ich dachte, daß extrem objektorientierte Sprachen generell einen Performanceverlust über teilprozeduralen Sprachen haben, weil OOP teuer ist. Und daß selbst JIT-Kompilierung interpretierte Sprachen nicht ganz so schnell wie hochoptimierten nativen Maschinencode machen kann. Wie man sich doch irren kann.
Ich finde es auch nett, daß C♯ alle Vorteile hat, inklusive "gibt es für praktisch jedes Betriebssystem mit nativ mitgelieferten Runtimes" (inklusive Betriebssystemen wie Zeta oder Plan 9 from Bell Labs) und "hat die größte Auswahl an Bibliotheken von allen Programmiersprachen". Microsoft muß sich echt Mühe gemacht haben, um die Sauerbraten-Engine, Mikmod etc. auf C♯ zu portieren.
Und wenn C++ wirklich ausgestorben ist, dann frage ich mich doch, womit KDE 4 programmiert wird. Oder der Großteil aller PC-Spiele. Oder der NT-Kernel (gut, der ist in C geschrieben, aber wenn C++ schon tot ist, muß es C erst recht sein).
Nebenbei, ich frage mich wirklich, warum Microsoft den neuen Explorer nicht in C♯ geschrieben hat. Ich meine, sie hatten ja mal eine Dotnet-Version, aber die hat es irgendwie nicht in das finale Vista geschafft, so wie der Großteil der anderen Dotnet-basierten Komponenten, die eigentlich für Longhorn geplant waren.
PS: In diesem Forum kannst du Unicode-Zeichen verwenden, schreib' also bitte "C♯" richtig. Die Version mit dem # ist nur für Umgebungen, in denen Unicode nicht zur Verfügung steht.
PPS: Selbst wenn von heute auf morgen keine neue Software in C++ geschrieben werden würde würde C++ locker noch 30 Jahre mindestens weiterleben. Siehe COBOL und FORTRAN.
Geändert von Jesus_666 (30.06.2007 um 23:39 Uhr)
Normalerweise will ich ja nicht nachsetzen bei sowas, aber... Zugegeben, C# hat Vorteile, wenn man nur unter Windows programmiert und auch sonst nicht allzu tief in die Hardware-Materie einsteigen muss... Gehts - wie Jesus_666 es schon erwähnt hat - um zeitkritische Anwendungen oder will man seine Programme auch auf anderen Betriebssystemen außer auf Windows anbieten, ist C# nicht wirklich erste Wahl. (Warum sollte Microsoft eine Programmiersprache anbieten, die auf anderen Betriebssystemen als auf Windows läuft?)
Geändert von Manuel (03.07.2007 um 21:34 Uhr)
C++ ist Bloat. Benutzt mehr C
--
Ansonsten, zu C# ( <<< ja Jeez, ich bin zu faul, das jetzt korrekt zu copy/pasten. Ausserdem definiert der ECMA-Standard C#.) wurde im Prinzip alles gesagt - was man noch erwaehnen sollte, ist, dass es fast alle Nachteile von Java hat (aber dafuer nichtmal dessen mehr-oder-weniger-Vorteile). Beides Sprachen, die nur wegen der Propaganda von $grosser_Firma so erfolgreich sind.
@ DFYX:
Python wuerde ich nicht als ernsthafte Alternative fuer die Spiele-Programmierung ansehen (okay, 2D-Sachen wie ein simples Jump'n'Run oder Breakout kriegt man sicher mit brauchbarer Geschwindidkeit zum Laufen; aber das trifft auch auf andere Sprachen zu), die Sprache ist einfach nicht schnell genug fuer eine brauchbare, moderne (3D-)Engine. Was man natuerlich machen kann, ist, eine Engine in C(++) zu schreiben und die Spiellogik in Python zu implementieren. Das machen inzwischen ja auch einige Spielehersteller (auch wenn die meisten eher Lua als Python nehmen).
Mit C++ kann man keine anständigen Spiele mehr schreiben der Perfomance verlust ist viel zu hoch.
Ich habe übrigens geschrieben das C# oder C.Net wie man es nenne will oder wirklich heisst für Windows extrem gut geeignet ist und wer Linux Fan eher nicht.
Ausserdem finde ich es sehr belustigen das angeblich die Sprachen so erfolgreich sind,wegen Propaganda großer Firmen.
C# wird für sehr viele Spiele benutzt.
Warum also sollten man sich für C# (wird "C Sharp" gesprochen) entscheiden?
Weil C# fast alle Vorteile von C++ und Java in sich vereint.
Dem C++ oder Java-Programmierer wird der Einstieg in C# besonders einfach fallen, da C# ein Abkömmling der C/C++ Sprachfamilie ist und somit die Syntax ähnlich wie in diesen Sprachen ist. Ein großer Vorteil gegenüber C++ ist, dass C# komplett neu entwickelt wurde und daher keine Überreste aus vergangenen Tagen wie etwa C++, das eine Weiterentwicklung von C ist, hat. Dies macht die Sprache leichter verständlich als C++. Des Weiteren wurde C# speziell für das .NET-Framework entwickelt und passt sich daher optimal in diese Umgeben ein. Aus diesem Grund eignet sich C# unter anderem auch besonders für die Entwicklung von Online-Diensten. Ein weiterer Vorteil ist, dass C# plattformunabhängig ist(ok nicht unbedingt), daher ein Programm, das mit C# programmiert wurde läuft auf jedem Betriebsystem, auf dem auch das .NET-Framework läuft. Des Weiteren ist C# vollständig objektorientiert. Selbst die Elementaren Datentypen wie Integer oder Booleans werden in C# als Objekte gesehen.
Ein weiterer Vorteil ist, dass C# die komponentenbasierte Programmierung unterstützt, was zu mehr Produktivität führt, da einmal programmierte Programme ohne Probleme weiterverwendet werden können.
So damit sollte alles gesagt sein....für WIndows leute ein unbedungtes muss.
Ich habe nie behauptet das C# die bester Sprache ist.
Schluss, aus, Baste^^.
Zeige mir auch nur eine glaubwürdige Statistik, die nicht von Microsoft stammt und deine Aussage belegt.Zitat
Ich möchte einfach mal einen Post aus einem anderen Forum zitieren:
Schon komisch, dass MS nicht will, dass Benachmarks veröffentlicht werden, wenn die Sprache doch so viel schneller ist.Zitat
Performanceverlust wodurch? C++ wird zu Maschionencode kompiliert und hat eine vergleichsweise winzige Runtime. Was genau macht C++ langsamer?
Gilt auch für C++ und Java. Und D.Zitat
Gilt auch für Java und D, wobei bei Java-artigen Sprachen (wozu auch alle Dotnet-Sprachen gehören) oft angemerkt wird, daß sie teilweise schwer verständlich sind, weil der Quelltext einfach zu wortreich wird.Zitat
Gilt auch für Java. Schon mal was von Servlets gehört?Zitat
Also auf Windows 200, Windows XP, Windows 2003 Server und Windows Vista. Damit ist C♯ genauso portabel wie C++, welches für win32 gebaut ist; man spart sich lediglich die Neukompilierung.Zitat
Wenn man allerdings portable Bibliotheken wie wxWidgets verwendet kann man auch aufwendige C++-Anwendungen für haufenweise Plattformen schreiben. Und im Gegensatz zu Dotnet bietet wxW selbst Support für diese Plattformen und erwartet nicht, daß irgendwer die Runtime und die Klassenbibliothek reverse engineert, um überhaupt nennenswerte Portabilität zu bieten.
Was wiederum bedeutet, daß C♯ Performanceverlust bedeutet. Glaub' mir, junge, OOP ist teuer. Vollständig auf OOP ausgelegte Programmiersprachen sind cool, aber sie sind auch langsam.Zitat
Zu dumm, daß komponentenorientierte Programmierung einfach nur eine andere Art ist, OOP anzuwenden. Mit C++ kann man komponentenorientiert arbeiten (siehe Bonobo) und Java tut es auch (Enterprise Java Beans).Zitat
Bis auf die Leute, die Wert auf Performance legen oder sich die Option der späteren Portabilität offen halten wollen. Oder die, die einfach Java verwenden und somit Portabilität gratis kriegen.Zitat
Geändert von Jesus_666 (01.07.2007 um 14:44 Uhr)
Das wären dann die X-Box 360 und Windows! Wirklich viel oder?![]()
C# ist etwas einfacher als C(++), aber von den aktuellen Möglichkeiten her, ist C++ die absolute Nr1 (Neben Pascal und den Pascal-Weiterentwicklungen wie Delphi) in allen Gebieten. Für kleinere Programme ist C# nett, aber Großprojekte sind in C(++) besser aufgehoben, da man hier nicht irgendein Framework braucht.
Hey, das sind verdammt viele, überleg doch mal: X-Box 360, Windows 98, Windows 98 SE, Windows 2000, Windows XP Home, Windows XP Professional, Windows 2003 Server, Windows Vista Starter, Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Business, Windows Vista Enterprise, Windows Vista Ultimate und Windows CE! Das sind 14 verschiedene! Und wenn man von der immer noch häufig anzutreffenden Version 1.0 ausgeht, kommt sogar Windows NT 4.0 dazu!
Edit: ich hab Windows Mobile vergessen! Also sogar 15!
Ich kenn mich mit Java nicht besonders gut aus aber der Propaganda großer Firmen zufolge scheint die Sprache doch ganz nett zu sein. Gibt es eine alternative die Programme erzeugt, die ohne neu kompilierung und mit einem ähnlichen Funktionsumfang für dieselben Anwendungsgebiete auf so vielen Plattformen läuft?
C++ ist viel toller und besser und schneller und hat nen längeren als dein C♯.Zitat
Der Text ist klasse.Zitat
![]()
Aso und wer unbedingt C# auch auf anderen Betriebssystem nutzten will sollte einfach Mono benutzten.
Hier der Link:
http://www.mono-project.com/Main_Page
Das ganze läuft auf Linux, Solaris, Mac OS X, Windows, und Unix.
Hoffe damit wäre die kompalitäts sache geklärt.
Und nein ich bin nicht zu feige hier weiter zu schreiben,
C++ ist vieleicht noch gut für Betriebssysteme das will garnicht abstreiten,aber dafür wurde C# net ausgelegt.
Zudem musss man bedenken das oft 10zeilen C++ coding in C# eine ergeben.![]()
nur ist mono, wenn ich mich recht erinnere, erheblich langsamer noch als normales unter windoze laufendes C#
--
cats are not characteristically disposed toward voluntary aerobic exercise
Also die Diskussion ist sehr interessant und um auch mal ein Statement eines Studenten hierzulassen: Wenn man bei uns mit dem Thema C# anfängt erntet man vom zuständigen Hochschulpersonal nur ein müdes (oder mitleidiges?) Lächeln, bei uns wird C und anschließend C++ gelehrt.
--Lange Zeit verschollen - jetzt wieder da!!
Kann ich nur bestätigen. Bei uns ists Java, Assembler und C. (Nunja, ein wenig Haskell wird uns auch noch aufgezwungen)
C# scheint an deutschen Hochschulen auf keinerlei Intresse zu stossen,...
(Was zB an meiner Uni kein Wunder ist, die hiesige technische Fakultät besitzt genau 2 Windows Rechner. Der Rest läuft auf Solaris.)