Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

11

29.06.2014, 13:46

Da gibt es viele Beispiele. Operatorüberladung, Generics, da gibt es vieles. Ich persönlich kann die Java-Philosophie außerdem nicht leiden.
Und das Java die Platform der Unabhänigkeit ist, hast du schön nachgeplappert. Ich sehe das eher so, dass Java nur auf einer einzigen Platform läuft: Die JVM. Sprachen sind außerdem genau soweit Platformunabhänig wie man in ihnen entwickelt. Und das kann man in C++ auch.

Alternativen zur Winapi... habe ich doch schon genannt? Qt und wxWidgets zum Beispiel. Es gibt noch viel mehr. Wie portabel die sind, sollte man nur vorher nachlesen. Gib "GUI Framework C++" in deine Lieblingssuchmaschine ein. Auf Wikipedia kommt dann auch eine Übersicht.

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

12

29.06.2014, 13:48

Ich habe eben unter dem Suchbegriff "Alternative zur WinApi"

Das selbe gefunden.

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

13

29.06.2014, 13:54

Nen mir ein Beispiel, dass mit C# funktioniert aber mit Java nicht.

Für eine Java Anwendung, braucht der Endnutzer die Java Runtime. Die .NET Runtime hingegen ist auf Windows vorinstalliert, soweit ich das weiß.

Es ist deshalb unsinnig eine Anwendung für Windows und Java zu entwickeln, da sich die Geräte komplett unterscheiden. Sowohl Input wie auch Output.
Java Android Anwendungen müssen auf Touchbedienung ausgelegt sein. In Windows Anwendungen navigiert man mit der Maus. Das komplette UI Overlay müsste geändert werden.

Such doch einfach eine Sache raus die du machen willst. Z.B. Android Anwendungen oder Windows Anwendungen.

Welche Sprache ist für Anwendungsentwicklung am besten.

Es gibt nicht DIE beste Sprache. Je nachdem was du entwickeln willst ändern sich deine Anforderungen. Mit C++ hast du einen sehr großen Funktionsumfang. Das kann negativ und positiv interpretiert werden.
Für Windows Anwendungen würde ich dir zu C# raten. Vorteile: Große Community, viele Tools, Microsoft.

Eigentlich ist die Sprache nicht das Entscheidende. Ein Taschenrechner kann in jeder erdenklichen Sprache geschrieben werden. Nimm also die Sprache in der du dich am wohlsten fühlst. Für mich ist das eindeutig C++, für andere Java und manche die ihr Leben einfach nur hassen programmieren in Brainf*ck. Die Entscheidung liegt bei dir.

@Admin: Warum ist Brainf*ck zensiert!?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Cranberry« (29.06.2014, 15:03)


Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

14

29.06.2014, 14:02

Zitat

Java Anwendungen müssen auf Touchbedienung ausgelegt sein.

Äh wie bitte?
Du meintest hoffentlich Android...

Im Moment frage ich mich eigentlich auch eher wie es um die Lizenz der JVM steht.

Zitat

Auch viele GUI Anwendungen laufen mit Java

Aha. Welche den zb? Ecplipse tut es, dass ist aber hauptsächlich zur Entwicklung der selbigen Sprache gedacht. Und das legendäre Minecraft. Aber das ist keine GUI-Anwendung, bzw. das was ich mir darunter in erster Linie unter dem Zusammenhang vorstelle.

Zitat

Jre ist bereits installiert auf Windows Rechnern.

Bei mir nicht und bei vielen anderen wohl auch nicht.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

15

29.06.2014, 14:06

Ich denke nicht, dass es irgendeine Relevanz hat, wie viele Plattformen (welche Betriebssysteme, Microcontroller etc.) man nun mit C++ oder Java Erreichen kann.

Erstmal an den Autor: was genau hast du vor? Je mehr Details wir wissen, umso besser können wir konkrete Empfehlungen geben.

Mit Java kann man für alle gängigen Desktop-Betriebssysteme Anwendungen erstellen. Im JRE ist standardmäßig bereits Swings für Oberflächenentwicklung enthalten, ansonsten wäre noch SWT erwähnenswert. Wenn man auf Mobilplattformen etwas mit Java anfangen will, wird man nicht auf Swing (oder AWT oder SWT) zurückgreifen können. Wenn man nicht gerade ein Plattformübergreifendes Framework findet, ist man auch relativ stark auf Android beschränkt (wobei Blue Cobold in einem anderen Thread meinte, dass Frameworks für nicht-Spiele-Apps nur bedingt angenehm in der Verwendung seien).

Mit C++ kann man für im Grunde jedes System entwickeln. Für Desktop-Betriebssysteme gibt es hier die bereits genannten Qt und wxWidgets, zu denen ich allerdings nichts sagen kann. Aber auch für C++ gilt, dass man auf mobilen Plattformen i. d. R. andere Frameworks benutzen wird oder zumindest den Teil der Oberfläche gänzlich anpassen muss. (Anwendungen auf einem Mobildgerät sind einfach anders aufgebaut.)
Qt [Nachtrag: und wxWidgets] würden, soweit ich weiß, den Vorteil bieten, dass es sich auch über OpenGL zeichnen lässt und man somit Qt als UI für Spiele verwenden kann.

Das .NET-Framework gibt es grundsätzlich nur für Windows, für andere Plattformen gibt es aber Mono, welches aber leider keine 100 %ige Kompatibilität besitzt. Für die Oberflächenentwicklung gibt es im .NET-Framework standardmäßig Windows Forms und WPF, letzteres ist allerdings nur auf Windows (sowie in ähnlicher Form in Silverlight und dem Framework für die Windows 8 Apps) verfügbar.
Den Hinweis, man solle sich doch um jeden Preis von WPF fern halten finde ich unsinnig. Wenn man für Windows entwickelt (da Windows immernoch das verbreitetste Desktop-Betriebssystem ist, kann das durchaus vorkommen), dann sollte man auch die Vorteile nutzen, die einem WPF bietet.


Wenn man mit einer der Sprachen bereits Vorerfahrungen hat, dann dürfte das natürlich ein großer Pluspunkt für die entsprechende Sprache sein.
Sollte man in seine Anwendung bspw. ein Spiel oder eine Visualisierung mit Hilfe einer anderen Bibliothek (OpenGL, DirectX oder darauf aufbauende Bibliotheken) einbinden wollen, sollte dies wohl am einfachsten sein, wenn beides die gleiche Sprache verwendet.
Im Gegensatz zu C++ sind C# und Java einfacher in der Handhabung. Man muss sich nicht an jeder Stelle Gedanken darüber machen, auf welche Weise die Werte gehalten werden sollten. Wenn du wirklich nur eine Desktop-Anwendung entwickeln willst, dann sollten die sich daraus ergebenden Einschränkungen kein Problem darstellen.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sacaldur« (29.06.2014, 14:18)


Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

16

29.06.2014, 14:11

wxWidgets kann übrigens auch direkt mit OpenGL umgehen, nur mal so angemerkt. Ich sehe halt als ein kleiner Vorteil der Lib, dass sie etwas kleiner und händelbarer als Qt ist und auch die nativen Controls nutzt.
Ich habe nicht gesagt, dass man sich von WPF um jeden Preis fern halten soll, nur das man sich fernhalten muss, wenn man plattformunabhängig entwickeln möchte.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

17

29.06.2014, 15:01

Zitat von »LetsGo«

Java ist die Sprache für Platformunabhängikeit.

Dann ist es C++ aber mindestens ebenfalls, das ist das, worauf ich hinaus wollte. Java läuft eben bloß auf der JVM. C++ überall. Die JVM läuft zwar wiederum fast überall und damit auch Java, trotzdem ein entscheidender Unterschied bezüglich Platformunabhänigkeit wie ich finde. Sacaldur hat es bereits auch schon gesagt: In Sachen wo die Anwendunge laufen kann, geben sich Java und C++ nicht viel. Und von C# relativ dicht gefolgt. Überhaupt: Sehr viele Sprachen laufen prinzipiell überall.

Und die Sprachen sind definitiv nicht gleich mächtig. Jeder erfahrene Programmierer in C++ wird dir das erzählen können, wenn er mal auf Java entwickeln sollte. Aber jedem das seine. In der Anwendungsentwicklung ist das natürlich auch nicht zentral entscheidend, aber manchmal eben nervig.

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

18

29.06.2014, 15:02

Sorry hab mich verschreiben. Meinte natürlich Android. ;)

Tobiking

1x Rätselkönig

  • Private Nachricht senden

19

29.06.2014, 15:25

Man darf nicht vergessen, dass Java und C# schon länger nicht mehr zwingend an die VM gebunden sind. Es gibt für beide Sprachen native Compiler, mit denen sich Plattformen erreichen lassen, auf denen es keine entsprechende VM gibt. Ein sehr gutes Beispiel ist da Unity3D, welches C# (mit Hilfe des Mono AOT Compiler afaik) auf ziemlich viele Plattformen bringt.

Die Frage der zu verwendenden Sprache liegt also eher an den vorhandenen Toolkits/Frameworks und am eigenen Geschmack. Und eine Anwendung die auf dem PC und Mobile laufen soll, wird sich auch trotz gleichem Framework deutlich unterscheiden müssen.

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

20

29.06.2014, 15:35

Ersteinmal danke für eure Antworten.
Das war wohl eine ziemlich blutige Diskussion. Java vs C++

Ich habe mich entschieden bei C++ zu bleiben, weil ich damit besser vertraut bin.
Das heißt nicht, dass ich Java schlecht finde.

Kennt ihr ein GUI Framework, dass auf folgenden Plattformen läuft (Windows/Linuy/osX).
Sonst müsste ich ja bei jeder Plattform das Framework wechseln.

BCG hat mich etwas beeindruckt, jedoch kostet die Pro 400 $.
Ich Informiere mich mal in der Liste in Wikipedia, welches am besste passt.

Danke an Alle.

Werbeanzeige