C# & Gameprogramming

Nun Xeragon du verursachst mir ein Problem und zwar das ich deine Posts immer nur zur haelfte zustimmen oder nicht zustimmen kann :-)

"aber so "stark" wie C++ wird es sicher nie sein"

Ohm es komt drauf an wie du Stark definierst ?
Ist es die Geschwindigkeit dann ist Assembler staerker
Ist es Moeglichkeit dann ist C++ staerker als C# (ja Geschw auch)
Ist es Kostenguenstige Programmierung ist C# staerker als C++
Ist es die Wartung von Programmen ist C# staerker
Ist es Plattformunabhaengigkeit und damit verbundene Produktionseinspaarungen -> C#
....
Insgesammt nach der Wertung wie mann eine Programmiersprache am meisten Bewertet :
Nutzen + Geschwindigkeit
gewinnt C++ klar.

aber wenn jetzt folgendes gerechnet wird:
Nutzen + Geschw / Produktionskosten
bin ich mir da nicht mehr so sicher

Auch wenn Joki lacht :-) aber hinter dem Motorsaegen Papierschneidem beispiel steh ich immer noch.

"mal das "kleine" System.Collections mit der STL"
Wie lange ist das .net Framework released ? glaube das ist jetzt 1 Monat her. Wie lange gibts die STL ? Die Standart Library der beliebtesten Programmiersprache ?
Das ich diesen Vergleich im Augenblick noch nicht zaehlen will versteht sich....

int eineZahl; // Wert
MeineKlasse eineKlasse; // Wert
MeineKlasse& refEineKlasse; // Referenz
MeineKlasse* ptrEineKlasse; // Pointer


Richtig ich habe keine Sorgen mit Pointer und Referenzen in c++. Auch keine in C# denn es gibt ein schlaues buechlein das einem verraet wo was wie uebergeben wird
Auch wird einem das ganz schnell klar.

(Ich persönlich sehe C# gern als "kleiner Bruder" von C++ (kompakt, aber eben nicht so umfangreich)

agree

Nun lass uns mal ein paar Jahre zurueckblicken in die Java Boom zeiten.
(Nein ich habe dort noch nicht gecodet aber man liest ja gern )
Die Leute waren davon ueberzeugt das Java das bessere C++ ist. Nun das hat sich nicht ganz bewahrheitet aber schau mal auf http://www.entwickler.com/jobs und suche nach Java so sieht mann das in der industrieellen Produktion Java durchaus seine Fans hat.
C# und .net ist ziiemlich Jung noch und das erklaerte Ziel von MS ist da. Und dieses ist u.a. das .net die WinAPI abloest und damit wird die Bedeutung von einer reinen .net Sprache ganz klar groesser

Finger ausruh ... :-)
 
stark (im sinne von Programmiersprachen): möglichst vielseitieg (sowohl high-level als auch low-level funktionalität), effizient (ok, handgeschriebenes Assembler ist meistens (sprich: bei einem erfahrenem Programmierer) das effizienteste, aber Assembler hat in keinem der anderern Bereiche Vorteile), eindeutig (was "implizite Referenzen" ja nicht unbedingt sind...), gute Syntax, vielleicht noch ein paar Sachen die ich vergessen habe, in der Praxis nützlich.

Ist es Kostenguenstige Programmierung ist C# staerker als C++
Ist es die Wartung von Programmen ist C# staerker

Das sehe ich nicht unbedingt so... Wartung & Kosteneffizienz kommt weniger auf die Programmiersprache als auf Coding-Standards & das Design an (bzw. Projektplannung). In C++ stehen dir genausoviele OOP-Möglichkeiten offen.

Ist es Plattformunabhaengigkeit und damit verbundene Produktionseinspaarungen -> C#

Hmm... bei C# wären da:
- Windows
- (bald?) Linux

Bei C++:
- so ziemlich jede Plattform die ich kenne (ich hab hier einen uralten IBM RISC 6000 rumstehen und er hat einen C++-Compiler...)
(natürlich muss darf man nur Standard-Funktionalität verwenden, is aber bei C# auch nicht anders ;))

Da du jetzt gleich damit kommen wirst, dass C# nicht neu kompiliert werden muss: Das hängt ja nur mit .NET zusammen (IL) und du kannst auch mit C++ auf .NET/CLR basierend programmieren ;)

Nutzen + Geschw / Produktionskosten
... Naja Produktionskosten sollten bei erfahrenen Programmieren nicht unbedingt durch die Programmiersprache entstehen *g* ... So gesehen hätte C++ mit den mehreren verfügbaren Libraries (incl. .NET) bessere Chancen ...

Auch keine in C# denn es gibt ein schlaues buechlein das einem verraet wo was wie uebergeben wird
Auch wird einem das ganz schnell klar.

Hmm, wenn du Typsicherheit danach definierst, dass es mit Hilfe des Standards deutlich hervorgeht was da los ist, dann ist wohl jede Sprache typsicher (du kannst auch mit dem C++-Standard in der Hand deinen ganzen Code durchgehen und wirst feststellen, dass es ganz eindeutig ist).
Ich persönlich sehe die praktischere Definition von Typsicherheit darin, dass ich ohne Buch (zumindest ungefähr) sehe, mit welchem Datentyp ich es zu tun habe. (Allerdings ist C# zugegebenermaßen bis auf das Zeug mit den Referenzen relativ typsicher, C++ allerdings auch ;))

Wie lange ist das .net Framework released ? glaube das ist jetzt 1 Monat her

Hmm, das hat schon ein paar Jährchen (2, 3?) Entwicklungszeit hinter sich, ich persönlich glaube, dass sie die entsprechenden Klassen schon beim Release drin hätten, wenn sie es vorhätten. Auf lange Zeit kann ich aber leider keine Prognose stellen. (Nebenbei bemerkt: Es gibt auch Diskussionen über einige andere Libraries in C++ die nach Meinung vieler in den Standard sollten)

Java:
Es ist immer das Problem mit dem ersten Hype... jeder denkt die neue Sprache ist ideal um alle Probleme aus der Welt zu schaffen, wenn das allerdings mal verflogen ist, taucht die Frage auf "Wo bringt es jetzt wirklich Vorteile?".
Die Plattformunabhängigkeit von Java ist ja angeblich auch nicht sooo toll wie anfangs gesagt. Dennoch hat es sich zumindest im Web als recht nützlich erwiesen.
(Etwas in eigener Sache: Sollte irgendjemand schon einmal ein Java-Applet mit halbwegs vernünftigem/dem Standard entsprechenden UI gesehen haben, so möge er es mir bitte verraten, ich bin nämlich immer noch auf der Suche ;)).
 
Ich bin der meinung das C# im Windows Bereich sehr wohl durchsetzen wird gerade wegen der einfachheit. Gerade beim Widows Programmieren ist C# hervorragend. Alles Basiert schön auf Klassen und ist bis in die letzte kleine Ausgabe komplett verkapselt.

Leider fehlen aber die lieben Pointer. Ausserdem ist der Compiler schon fast zu genau: man kann z.B. kleine Tricks wie z.B. eine if-anweisung nicht mehr als Variablendeklaration "missbrauchen" ....

Ich als 3D und 2D Grafik programmierer bleib voerst bei C++ und wart bis ohne .net gar nicht mehr geht. Das dürfte aber noch eine Weile dauern. (Schätz mal 2005-2006)
 
Das mit WindowsForms ist wohl kein Argument für C#, da es ja genauso unter C++ funktioniert...
Warum C# nehmen wenn man C++ & .NET haben kann?
(und wiedermal: Webanwendungen sind wohl besser in C# zu schreiben)
 
@Xeragon:

schau dir mal C# an dan wirst du schnell sehen, dass
C# & .NET viel mehr Sinn ergibt!
WindowsForms mit C# ist schon ein gutes Argument weil du einfach mit C# Klassen dein Programm schneller fertig hast!

am besten du schaust dir mal ein Tut drüber an....dann bist auch du meiner Meinung. Wetten?!:-)
 
Ich würde nicht darüber urteilen, hätte ich es mir nicht schon angeschaut.

Warum sollten C#-Klassen besser als C++-Klassen sein? C++-Klassen bieten noch mehr Möglichkeiten als C#-Klassen.
 
Hmm... bei C# wären da:
- Windows
- (bald?) Linux

Naja erste Beta von Linux/UNIX ist gerade erschienen.

- MacOs ist gerade in Arbeit.

- so ziemlich jede Plattform die ich kenne (ich hab hier einen uralten IBM RISC 6000 rumstehen und er hat einen C++-Compiler...)

Richtig nur dann versuch mal dein Graphischen Oberflaeche Programm das du mit nutzung von WinSockets auf deinem Win rechner geschrieben hast und pass das mal an KDE an. mhhhh

- C++ auf .NET/CLR basierend programmieren

Kannst du aber das ist dann nicht schneller als C# :P somit geht ein C++ vorteil damit verloren.


... Naja Produktionskosten sollten bei erfahrenen Programmieren nicht unbedingt durch die Programmiersprache entstehen *g*

Richtig aber genau dieser Erfahrene Programmierer kostet ne menge geld ;)
Mal ehrlich C++ ist wenn mann nicht jahrelange erfahrung hat noch sehr Laufzeitfehler anfaellig. Es dauert eine Weile und einige Debug Zeiten bis ein Programm ausgeliefert werden kann. Aber wer gibt schon zu das er fehler reinprogrammiert.
C# ist in diesem Bereich wirklich kostenguenstiger da viele Fehler erst gar nicht erstehen und wenn doch so werden sie zur kompilierzeit abgefangen (natuerlich nicht alle )

Ach PS:
Das soll kein C++ vs C# vs Java vs Assembler | ASP vs PHP vs JSP |
Windows vs Linux | BMW vs Mercedes | Shiffer vs Meine Freundin (hehe gewinnt eh) Thread sein.
C++ ist eine klasse / leistungsfaehige Sprache doch unterschaetz mir die Zukunft von .net und C# nicht :)

sie die entsprechenden Klassen schon beim Release drin hätten, wenn sie es vorhätten.

Ich gehe eher davon aus das die 50 % veroeffentlicht haben und 50% nach und nach veroeffentlichen nach dem Motto :
Schau schau wir tun was :)

(Etwas in eigener Sache: Sollte irgendjemand schon einmal ein Java-Applet mit halbwegs vernünftigem/dem Standard entsprechenden UI gesehen haben, so möge er es mir bitte verraten, ich bin nämlich immer noch auf der Suche ).

Wuerde mich auch interressieren *g
Das Java Look & Feel war der Hauptgrund weshalb ich mir doch nicht Java angeeignet habe.
 
Naja erste Beta von Linux/UNIX ist gerade erschienen.

Hmm, das heißt bald trifft es eh recht gut ;).

Richtig nur dann versuch mal dein Graphischen Oberflaeche Programm das du mit nutzung von WinSockets auf deinem Win rechner geschrieben hast und pass das mal an KDE an. mhhhh

Es gibt auch Cross-Plattform Graphics-Libraries für C++ wenn du unter C# auf die WinAPI zugreifst is es genausowenig plattformunabhängig. Und: Wenn ich plattformunabhängige Sockets brauch, verwend ich nur die Berkley-Socket (ich glaub es war berkley? hmm, lange nicht mehr Sockets programmiert *g*)

Kannst du aber das ist dann nicht schneller als C# :P somit geht ein C++ vorteil damit verloren.

Wegen der Schnelligkeit hab ich ja auch nichts gesagt. Bloß du hast dann die Funktionalität von C++ :).


Richtig aber genau dieser Erfahrene Programmierer kostet ne menge geld ;)
Mal ehrlich C++ ist wenn mann nicht jahrelange erfahrung hat noch sehr Laufzeitfehler anfaellig. Es dauert eine Weile und einige Debug Zeiten bis ein Programm ausgeliefert werden kann. Aber wer gibt schon zu das er fehler reinprogrammiert.


Sollte der Programmiere nicht den Grad an Erfahrung haben, solltest du idhcn evtl. nach einem anderen umschauen... schließlich ist in der Praxis Programmierung die Lösung eines Problems, nicht die Lösung in eine Programmiersprache zu formulieren.

Ach PS:
Das soll kein C++ vs C# vs Java vs Assembler | ASP vs PHP vs JSP |
Windows vs Linux | BMW vs Mercedes | Shiffer vs Meine Freundin (hehe gewinnt eh) Thread sein.
C++ ist eine klasse / leistungsfaehige Sprache doch unterschaetz mir die Zukunft von .net und C# nicht :)


Das sehe ich auch so... allerdings sollte man die Zukunft auch nicht überschätzen.

Ich gehe eher davon aus das die 50 % veroeffentlicht haben und 50% nach und nach veroeffentlichen nach dem Motto :
Schau schau wir tun was :)


Die Wahrscheinlichkeit, das Microsoft plötzlich auf diese Strategie umstellt ist ungefähr... ähm... 0,0000001% (und das aufgrund von Rundungfehlern *g*). Sie werden es sicher erweitern, aber sie halten bestimmt keinen Teil zurück, das würde sich nur negativ für sie selbst auswirken.
 
Das glaub ich nicht Tim :D

Ja WinSockets ist die Windows implementierung dieser Berkly geschichte die zuerst fuer UNIX FreeBSD (? glaub) rauskam und am
MIT (Massachusets Institute for Technologie) entwickelt wurde (Hab wirklcih nicht nachgeschaut :-) keine ahnung wieso ich das noch weis)
Aber wie mann Win implementierungen kennt ist es mit Portabilitaet nicht weit her.
Nein C++ ist wirklich nicht plattformunabhaengig.

Wegen der Schnelligkeit hab ich ja auch nichts gesagt. Bloß du hast dann die Funktionalität von C++

Aber dann ueberwiegen die nachteile. Bin der letzte der fuer .net C++ hernehmen wuerde. C++ -> Nativ Code

Sollte der Programmiere nicht den Grad an Erfahrung haben, solltest du idhcn evtl. nach einem anderen umschauen... schließlich ist in der Praxis Programmierung die Lösung eines Problems, nicht die Lösung in eine Programmiersprache zu formulieren.

Nun es werden immer mehr Programmierer gebraucht werden in der Zukunft. Immer mehr betriebe gruenden eine eigene IT Abteilung wenn sie sie nicht schon haben. Und dies auch immer mehr bei kleineren Firmen.
Daher wird eine Programmiersprache benoetigt mit der die anfallende Arbeit erledigt werden kann ohne diesen Riesigen Overhead an Lernaufwand. Wer sagt C++ ist leicht zu lernen ist entweder , Genie, Angeber oder Besoffen :-)
 
Hi

Wollt auch mal was zu dem Thema sagen

Noch nie war es so leicht eine Anwendung zu schreiben wie in C#.
Da haben die Leute von Microsoft tolle Arbeit geleistet.
Zum eigentlichen Thema, Gameprogramming.
C# ist auf keinen Fall zu langsam für Games.
Die Ausrede das C# durch den Jitter verlangsamt wird im Gegenstaz zu voll kompilierten Programmen zählt nicht, bei großen Anwendungen die modular aufgebaut sind(was games nun mal sind) kann C# sogar um einiges Schneller sein als C++. Warum? weil der Jitter den Code ständig zur "Laufzeit" optimiert und ihn so immer besser den umständen anpassen kann, außerdem wird nur der Teil eines Programms kompilert der benötigt wird, also nicht das gesamte Programm, und das bringt zusamemn enorme Geschwindigkeitssteigerungen. Und durch Com/Interop ist es schon längst möglich OpenGlide/DirectX zu benutzen und b DirectX9 werden auch native .Net Komponenten zur verfügung sein.

wollt da nur mal sagen, weil doch einiges falsches heir gesagt wurde

bye talla
 
Zurück