In welcher Sprache programmieren ?

Eighteen Zeros schrieb:
Hmm... brauch ich swing oder JavaFX ueberhaupt b.z.w was bringen die fuer Vorteile ?

Wenn Du eine graphische Anwendung erstellen möchtest, benötigst Du irgendeine Schnittstelle zur Grafikausgabe. Selbst schreiben ist Dir wohl kaum möglich (wäre auch schwerlich sinnvoll), also benötigst Du ein entsprechendes Toolkit, ja.

Java liefert gleich drei davon standardmäßig mit. AWT, Swing und JavaFX, wobei AWT praktisch nicht (direkt) Anwendung findet, man bei Swing nicht weiß, ob noch eine Weiterentwicklung stattfindet, und JavaFX wohl die Zukunft gehören soll, wobei ich mal in Frage stellen möchte, ob es eine große Zukunft geben wird.

Übrigens, wenn man natives Plattform Look&Feel möchte, setzt man besser auf SWT. Bei Deiner Anwendung sollte das wohl egal sein. Also Swing oder JavaFX. Vor- und Nachteile solltest Du leicht recherchieren können.
 
Ah, so langsam verstehe ich das hab mich auch informiert und finde das JavaFX besser ist auch, weil ich mit Swing nicht irgendwann im dunklen stehen will.

Und nochmal ganz spontan gefragt damit ich ein bisschen Beispiele habe Minecraft muss dann ja auch entweder mit Swing oder schon mit JavaFX geschrieben worden sein oder ?

Gruß
 
Eighteen Zeros schrieb:
Und nochmal ganz spontan gefragt damit ich ein bisschen Beispiele habe Minecraft muss dann ja auch entweder mit Swing oder schon mit JavaFX geschrieben worden sein oder ?

Nö, 3D-Spieleprogrammierung ist noch mal ein ganz andere Kiste. Minecraft nutzt LWJGL soweit ich weiß (OpenGL-basiert).
 
Eighteen Zeros schrieb:
Ich möchte fürs erste eine Art Pinnwand programmieren, d.h einen Hintergrund auf dem Bilder sind die man beliebig Positionieren kann und das man den Zoom verändern kann.
HTML, JS und CSS reichen hier vollkommen. Persistenz erreichst du dadurch, dass quasi jeder moderne Browser LocalStorage und IndexedDB unterstützt.
Der Vorteil? Es läuft sofort quasi überall, vom heimischen PC bis zum Smartphone.

Das gilt dann auch für deutlich komplexere Probleme.
 
Daaron schrieb:
HTML, JS und CSS reichen hier vollkommen. Persistenz erreichst du dadurch, dass quasi jeder moderne Browser LocalStorage und IndexedDB unterstützt.
Der Vorteil? Es läuft sofort quasi überall, vom heimischen PC bis zum Smartphone.

@Eighteen Zeros
Wenn es Dir darum gehen sollte, in eine zukunftsträchtige Technologie investieren zu wollen, dann wäre Daarons Vorschlag keine schlechte Idee. Mittlerweile gibt es schon ausgewachsene Desktop-Anwendungen, die damit umgesetzt werden.
 
Also bei dem was du umsetzen willst würde ich auch nicht Java lernen und mir eins der Grafikframeworks antuen. Die Idee von Daaron finde ich da auch gut. WP8 und Windows Apps lassen sich (wie schon erwähnt) komplett in HTML + JS schreiben und auch für Games für alle Plattformen gibt's schicke Frameworks (Bspw. http://cocos2d-x.org/ ) die JS unterstützen. Wenn dann doch in Richtung 3D Desktop Game geht, würde ich mir entweder eine gute Engine anschauen, oder dann ordentlich mit C++ und nem guten Framework einsteigen. Minecraft ist da eher ein Beispiel, wie man mit Java sehr unperformate Spiele schreiben kann.
 
BlooDFreeZe schrieb:
Minecraft ist da eher ein Beispiel, wie man mit Java sehr unperformate Spiele schreiben kann.

Beim Java-bashen bin ich immer gerne dabei :p, aber unperformante Programme kannst du in jeder Sprache produzieren. Ein kompetenter Programmierer sollte sehr wohl im Stande sein, in Java hochperformante Spiele zu produzieren. Sollte Minecraft da wirklich so abstinken, liegt das wahrscheinlich eher an den Leuten, die's geschrieben haben, als an der Sprache, die sie dafür benutzt haben.
 
:D Hast natürlich prinzipiell recht. Wobei "hochperformant" sicherlich relativ ist ;) Ich kenne leider den Code von MC nicht und kann nicht beurteilen wie es programmiert ist. Man kann sich jetzt drüber streiten wie hoch der Java Overhead ist und ob er heutzutage noch relevant ist, aber ich finds nur ein bisschen ungünstig bei Spieleprogrammierung und Java Minecraft in den Topf zu werden, da es eigentlich ein Negativbeispiel für Java Spiele ist.
 
Hi,
ganz allgemein betrachtet, unabhängig davon was du programmieren willst, wären die Programmiersprachen C bzw. C++ zu empfehlen und erst danach in Java einzusteigen. Wenn du C bzw. C++ gut programmieren kannst würde Java gut passen. Dadurch lernst du es halt von Grund auf ganz, da Java Objektorientiert ist und Funktionen selbst anbietet, die man evtl. in C oder C++ selbst programmieren müsste. Wodurch du einen besseren Verständnis für die ganzen Sachen gewinnst.

Viele Grüße
Tron36
 
BlooDFreeZe schrieb:
Man kann sich jetzt drüber streiten wie hoch der Java Overhead ist und ob er heutzutage noch relevant ist,...
Zumindest hier kann man wohl getrost sagen: Unter Ulk zu verbuchen. Klar, C/C++ sind deutlich flotter, aber das betrifft eben nur hoch optimierten Code.
In den meisten Fällen sitzen die Leistungsverluste aber ganz woanders, nicht in der Sprache. Was bringt es dir z.B. eine Webseite in C zu schreiben statt in PHP, wenn du pro Seitenaufbau 2-3 (unnötig) komplexe SQL Queries ausführst, die jeweils 2-300ms dauern?
Genauso: Was bringt dir C vs. Java, wenn du ne While-Schleife nicht effizient an dem Punkt abbrichst, ab dem sie eh keine sinnvolle weitere Operation durchführen wird?
 
Hi,
wenn du richtig programmieren willst, fang mit C/C++ an. Wenn du dann mit diesen richtig Programmieren kannst wäre Java gut. Wobei der umstieg relativ leicht sein sollte.

Vereinfacht ausgedrückt liegt die stärke von C/C++ vor allem, auf der Code ebene.
In Java hingegen ist die Handhabung der GUI besser.

Lg Tron36
 
Der Vorteil von Java ist die automatisierte Speicherverwaltung. Warum wird immer zu C/C++ geraten? Weil es alle tun? Warum soll man sich mit malloc() herumprügeln? Weil man es kann? Das ist keine gute Begründung...
C/C++ mit seiner handgeklöppelten Speicherverwaltung sorgt bei Anfängern nur für eins: Frust. Du konzentrierst dich nicht darauf, Algorithmierung zu lernen und Programme zu strukturieren, sondern darauf, immer fleißig jedes Fitzelchen RAM zu überwachen. Das kanns nicht sein.

Dann doch lieber Java, wo man sich auf das Wesentliche konzentrieren kann und den ganzen Speicher-Mist dem System überlässt. Das mag ein kleines Bisschen Performance kosten, aber mal ehrlich: Wer von euch schreibt die neue Frostbite-Engine?
 
Der Nachteil bei Spielen ist die automatische Speicherverwaltung. Die sorgt gerne mal für Ruckler und Engpässe und das ist einer der Hauptgründe für C++. Außerdem verwendet seit Jahren kein Mensch in C++ malloc(). Modernes C++ hat mit den Problemen die du beschreibt nichts mehr zu tun. Spiele profitieren sehr von RAII, Smart Pointern etc.
 
Zuletzt bearbeitet:
Klar.... und der Programmier-Einsteiger schreibt sofort die nächste Frostbite-Engine? Also bitte... Die angeblichen Ruckler/Engpässe hast du nur in High Performance - Szenarien. Sei mal ehrlich: Wie viele Anwendungen hast DU schon geschrieben, wo 5ms mehr oder weniger etwas ausgemacht haben?
 
Daaron schrieb:
Klar.... und der Programmier-Einsteiger schreibt sofort die nächste Frostbite-Engine? Also bitte... Die angeblichen Ruckler/Engpässe hast du nur in High Performance - Szenarien. Sei mal ehrlich: Wie viele Anwendungen hast DU schon geschrieben, wo 5ms mehr oder weniger etwas ausgemacht haben?

Das hat er doch nirgends in seinem Beitrag behauptet, oder? Er hat lediglich darauf hingewiesen, daß die Aussage "C++ sucks, weil es manuelle Speicherverwaltung hat" schon längst nicht mehr zieht. In modernem C++ wirst du mit den Vor-und Nachteilen der manuellen Speicherverwaltung nur dann konfrontiert, wenn DU es wünscht.

Oh, und RAII ist ein gewaltiger Vorteil von C++ ... und ein Mechanismus, den Java selbst heute noch nicht beherrscht. (Ok, stimmt nicht mehr ... ich habe eben mal gegoogelt, und in Java 7 gibt es wohl nun zumindest das try-with-resources statement).
 
Bloodfreeze sprach explizit von Rucklern durch automatische Speicherverwaltung in Java. Und da sag ich: Ist doch Banane. Keiner hier schreibt solche Anwendungen, wo es DARAUF noch an kommt.
 
Und außerdem gings dem TE so oder so um (anfangs) eher triviale Problemstellungen. Mein ursprünglicher Tip war deshalb JavaScript. Sein Beispiel-Problem ist in HTML/CSS/JS ratzfatz gelöst.
 
Zurück
Oben