C Bin mir nicht sicher- C, C++ oder C#

Was ist besser C# oder Java?

  • Java

    Stimmen: 16 43,2%
  • C#

    Stimmen: 21 56,8%

  • Umfrageteilnehmer
    37
  • Umfrage geschlossen .
fand immer nur die programmier-sprachen interessant, die einen ohne umwege betriebs-system-schnittstellen zur verfügung gestellt haben. somit konnte man geräusche aus den lautsprechern ausgeben, cd-laufwerke öffnen\schließen lassen oder eben irgendwelche pixel-ausgaben auf dem bildschirm produzieren.

für den anfang war das das größte aha-erlebnis und zog mich immer tiefer in die programmierung. wenn deine motivation ähnlich seien sollte, nimm delphi oder c++. mit diesen sprachen und in den entsprechenden programmierumgebungen kannst alles umsetzen was dir vorschwebt, von leicht bis kompliziert. meiner meinung nach wäre java und c# für diese anlässe gänzlich ungeeignet, zumindest für einen anfänger.

edit: es werden leute kommen und dir irgendwas von spiele programmieren erzählen. das problem bei projekten dieser art ist nicht primär vom programmier-skill abhängig, sondern viel mehr von den mann-stunden die dafür benötigt werden und ebenso von den künstlerischen talenten. empfehle dir aussagen die mit spielen in zusammenhang mit programmiersprachen gemacht werden komplett zu ignorieren.
 
Zuletzt bearbeitet:
F_GXdx schrieb:
Also ich bin fast fertiger Diplom-Informatiker, und versuche mich jetzt im 5. Monat an C++ und muss sagen; es ist schon knackig!
Es geht ja nicht darum, irgendwas zum compilieren (und linken ;) ) und laufen zu kriegen, sondern die Sprache auch richtig einzusetzen. Und das heißt im Fall von C++ Bücher wälzen ohne Ende und auch theoretisches Hinergrundwissen zu Compilerbau und Rechnerarchitektur erwerben.

Sprich, C und C++ sollte man sich für später aufheben, wenn man sein Wissen wirklich vertiefen will.

C/C++ sind nicht ausschließlich für Profis. Gerade im Hinblick auf Spieleprogrammierung, wo es ja nun auf Performance ankommt, sollte man C oder C++ anfangen. Denn, das sind Sprachen die so ziemlich alles dem Programmierer überlassen, also benötigt man viel Hintergrundwissen und Verständnis warum es so ist wie es ist. Zu Wissen, wie Speicherallokierung, Zeigerverwaltung und und und funktionieren, ist Handwerkszeug, was man meiner Meinung nach in diesen Frameworks oder "Bibliotheken"-Sprachen nicht so unmittelbar mitkriegt. Erst recht, wenn man vorher nicht erst die ganze Theorie paucken kann/will.

Edit: wegen Edit im Zitat.
 
Zuletzt bearbeitet:
Ist doch auch wieder Unsinn bzw. gar nicht differenziert.

Braucht man für ein Indie-Spiel was man mit 2 oder 3 Leuten zusammen erstellen will C++, weil das Spiel heutige Rechnerkapazitäten ausreizt? Wohl kaum.
Da sind Java und C# viel eher die richtige Wahl, da sie weniger kompliziert sind und man schneller zum Ziel kommt.

Natürlich ist es sinnvoll C++ zu können, wenn man bei großen Produktionen mitwirken will, aber bis dahin muss man kleine Spiele nicht zwingend darin schreiben.
C# und Java sind heute schnell genug für das meiste was man privat erreichen kann.

@[GP] mino: Wie gesagt, ich habe das Programmieren anhand von Spielen (erfolgreich) alleine gelernt und zwar soweit, dass ich nicht an die Sprache gebunden bin sondern auch andere Sprachen schnell verstehe, da mir die allgemeinen Prinzipien bekannt sind.
Auch hier mal wieder: Tellerrand. Nur weil du dir nicht vorstellen kannst, dass es so funktioniert heißt das nicht, dass es nicht funktioniert.
 
Zuletzt bearbeitet:
[GP] mino schrieb:
edit: es werden leute kommen und dir irgendwas von spiele programmieren erzählen. das problem bei projekten dieser art ist nicht primär vom programmier-skill abhängig, sondern viel mehr von den mann-stunden die dafür benötigt werden und ebenso von den künstlerischen talenten. empfehle dir aussagen die mit spielen in zusammenhang mit programmiersprachen gemacht werden komplett zu ignorieren.

So ein Unfug. Niemand hat ihm empfohlen für sein Traumspiel Sprache X zu lernen. Es ging nur darum, mit welcher Sprache er den in der Spieleentwicklung verwendeten Technologien am nächsten ist. Er wird damit kein eigenes und umfangreiches Spieleprojekt umsetzen, das weiß hier jeder hoffe ich. Es geht nur darum sich mit den Techniken vertraut zu machen.
 
Ich bedanke mich erstmal bei allen die geantwortet haben. Ich hätte nicht gedacht das ich so viel Hilfe kriege.
Ergänzung ()

Ich bedanke mich erstmal bei allen die geantwortet haben. Ich hätte nicht gedacht das ich so viel Hilfe kriege.
Ergänzung ()

Ich habe jetzt eine Umfrage gestartet zwischen Java und C#. Bitte wählt was ihr denkt ist besser.
 
@[GP] mino
Die Tabelle von heise deckt sich mit meinen Vorstellungen, aber die Gehälter von Spieleentwicklern sind einfach unrealistisch in deinem 1. Link. Hast du eine aktuellere Quelle als 2001/2003?
 
bei heise habe ich vor 2 jahren auch das einkommen für spiele-entwickler gesehen, lag damals bei ca. 35-37k. fand aber den link nicht auf die schnelle.

habe das thema nur aus dem grund angerissen, weil die algorithmen zur computergrafik aus dem theorethischen bereich der modelle und algorithmen entspringen und zur den härtesten nüssen überhaupt zählen. und jeder der sie inne hat und halbwegs vernunftsbegabt ist, wird dieses wissen nicht für den lohn umsetzen wollen.

zu sehen ist das auch sehr gut an den credits wie zum beispiel bei den crysis spielen. dort sind ausschließlich nur programmierer aus dem osten tätig, für die dieser kleine lohn wohl ausreichend ist.
 
Zuletzt bearbeitet:
[GP] mino schrieb:
fand immer nur die programmier-sprachen interessant, die einen ohne umwege betriebs-system-schnittstellen zur verfügung gestellt haben. somit konnte man geräusche aus den lautsprechern ausgeben, cd-laufwerke öffnen\schließen lassen oder eben irgendwelche pixel-ausgaben auf dem bildschirm produzieren.
zu CD-Laufwerke öffnen/schließen kann ich nichts sagen, aber Sound- und Grafikprogrammierung geht auch mit Java & C#. Vor ner Weile wollte ich mir mal einen Tongenerator basteln, um mir mal anzuhören, wie sich verschiedene Frequenzen anhören. Hab mir erst überlegt, ob ich das in C++ machen soll, mit der Windows-Sound-API, hab's dann aber in Java gemacht. Hat auch prima geklappt. Klar, die Java-Sound-API hat noch eine Abstraktionsschicht über der OS-API, aber wo soll das stören?

[GP] mino schrieb:
nimm delphi oder c++. mit diesen sprachen und in den entsprechenden programmierumgebungen kannst alles umsetzen was dir vorschwebt, von leicht bis kompliziert.
nur wenn's da ne API für gibt. Und wenn es die nativ gibt, gibt es die auch für Java und C#.
 
DaysShadow schrieb:
Braucht man für ein Indie-Spiel was man mit 2 oder 3 Leuten zusammen erstellen will C++, weil das Spiel heutige Rechnerkapazitäten ausreizt? Wohl kaum.
Da sind Java und C# viel eher die richtige Wahl, da sie weniger kompliziert sind und man schneller zum Ziel kommt.
Spätestens wenn man mit seinem Indie-Game dann Geld verdienen willst beißt du dir in den Arsch, dass du C# genommen hast, und nicht eine Sprache nebst Framework gewählt hast, die portierbar ist.
Java läuft grundsätzlich überall, wo es eine JRE gibt. C oder C++ kann man, wenn man sich von DirectX und XNA fern hält, gegen alles mögliche kompilieren.

Die Verkaufszahlen bei Humble Bundle sprechen oftmals eine recht deutliche Sprache: Windows ist nicht alles im Leben. Klar, AAA-Titel kommen (aus Faulheit/Bequemlichkeit der Entwickler) nur für Windows/DirectX, Indie-Games hingegen kommen oftmals als Crossplattform und verkaufen sich wunderbar an User mit OSX und Linux.
In diesem Sinne: Finger weg von allem, was nicht oder nur mit extremer Verrenkung gegen Linux und OSX kompiliert.
 
Wenn du wirklich ein Spiel machen willst, solltest du dir sowas wie Unity3D anschauen. Dort ein Spiel zu machen ist wirklich einfach und geht schnell. Man braucht nur ein paar Kenntnisse in C# oder einer anderen .Net Sprache.

Im Unity Asset Store kann man sich Einheiten wie Panzer oder Mechs kostenlos runterladen, somit kann man recht schnell kleine Spiele basteln.

Nebenbei kannst du C# lernen.
 
Wenn er wirklich Spiele entwickeln will (was zwar noch lange dauern wird), ist denke ich C# die bessere Wahl. Denn da bekommt er von Microsoft dann mit dem XNA Game Studio auch gleiche eine Software, bei der er mit weniger Aufwand schnellere Ergebnisse erzielt. Gerade für Anfänger sind erste schnelle Erfolge doch wichtig. Denn als Anfänger dann auch direkt ne eigene 2d Engine schreiben, ich sehe das zu einer großen Wahrscheinlichkeit schief gehen. Und dann ist das anfängliche Interesse auf Grund fehlender Motivation ("der Scheiß funktioniert einfach nicht wie ich will") wieder verflogen.

=> Meine Stimme für C# (als Java-Entwickler).

Im Endeffekt ist es auch fast egal, Java und C# sind sich so ähnlich, da kann man dann auch wieder wechseln.
 
Also wenn Java oder C# zur Wahl steht, dann ja wohl 9001x lieber Java.

Da befindet man sich wenigstens nicht im Würgegriff einer einzigen Firma und ist ihr auf Gedeih und Verderb ausgeliefert.
Silverlight haben die schon eingestampft. Die Leute, die darauf gesetzt haben, gucken nun blöd. Was hält sie davon ab,
in der nächsten Version von Visual Studio, C# komplett über den Haufen zu werfen, so dass man die Hälfte, die man gelernt
hat, vergessen kann und nochmal halb neu anfangen darf? Außerdem ist man auf Windows festgenagelt. Hat man morgen
Lust, sich mal Linux anzusehen, kann man C# knicken. Mit Java kein Problem. Ja, es gibt Mono. Aber Microsoft hat .NET in der
Hand und Mono kann immer nur (langsam und stark verzögert) nachziehen mit seiner Entwicklung, wenn Microsoft die neuen
Features schon ausgerollt hat. Überall außer unter Windows ist man mit .NET ein Entwickler zweiter Klasse oder kann das
Entwickeln gleich vergessen.

Deshalb: Wenn schon, dann Java.
 
Wieso? Zeig doch mal eine Situation, wo es von Vorteil ist, sich an einen einzigen Hersteller zu binden, anstatt direkt Cross Plattform zu schreiben. Ich hab ja auch darauf hin gewiesen, dass man gerade im Indie-Bereich auf keinen Fall Linux oder OSX als Kundenplattformen aus den Augen lassen sollte. Ein Triple-A - Titel von EA kann es sich leisten, nur auf Windows ausgerichtet zu sein. Ein Indie kann nie mit solchen Verkaufszahlen rechnen und sollte mitnehmen, was er kriegen kann.

Bestes Beispiel, wie viel Erfolg man mit Java haben kann: Minecraft. MC wäre sicher nicht so weit verbreitet, wenn Notch sich mit XNA/C# an Microsoft gefesselt hätte.
 
Unity "ist" nicht C# sondern hat C#-Bindings. Es gibt kein .NET Framework für IOS oder Android oder Linux oder PS3 oder Wii oder OSX .
Entsprechend kann man mit C# gebastelten Unitykram nirgends außer unter Windows laufen lassen.

€: Ein kleiner Blick in die Wikipedia (keine Raketenwissenschaft!) hätte dir gezeigt, dass Unity in C++ geschrieben ist.
 
Zuletzt bearbeitet:
asdfman schrieb:
Es gibt kein .NET Framework für IOS oder Android oder Linux oder PS3 oder Wii oder OSX .

Falsch.
Nennt sich Mono. ADO.NET (insb. EF < 6, ab 6 wird/ist es Open Source) und manche Windows Features (WPF, WMI, Directory Services) werden nicht unterstützt - alles andere schon.

asdfman schrieb:
Entsprechend kann man mit C# gebastelten Unitykram nirgends außer unter Windows laufen lassen.

Falsch.
Mit C# erstellte Spiele laufen auf allen unterstützten Plattformen.

Edit.
Btw. hier fragt ein absoluter Anfänger nach Hilfe und ihr zwei Spezies kommt mit kram wie Einnahmequellen und Vendor-Lockin. Erstmal sollte er Programmieren lernen. Ob er das jetzt mit Java oder C# macht ist sowas von egal.
 
Zuletzt bearbeitet:
holy schrieb:
Mit C# erstellte Spiele laufen auf allen unterstützten Plattformen.
Also Windows. Außer man beschränkt sich auf eine begrenzte Untermenge der Features und bleibt Entwickler zweiter Klasse.
Hast du überhaupt gelesen, was ich geschrieben habe?
 
asdfman schrieb:
Also Windows. Außer man beschränkt sich auf eine begrenzte Untermenge der Features und bleibt Entwickler zweiter Klasse.
Hast du überhaupt gelesen, was ich geschrieben habe?

Ich formuliere meine Antwort für dich um:

Mit C# erstellte Spiele laufen auf allen von Unity3d unterstützten Plattformen - Windows, Linux, OSX, iOS, Android, Wii, PS3 und was sonst noch dabei ist.
 
Zurück
Oben