Technikfreund
Banned
- Registriert
- Okt. 2018
- Beiträge
- 152
Ich habe vor einiger Zeit ein wenig programmieren in Java gelernt, und meine nun genug über die Grundlagen zu wissen, um das intensive Studium von GUI-Entwicklung in Java zu beginnen. Irgendwann später möchte ich dann auch kleine grafische 2D-Spiele programmieren können, die so aussehen: https://de.wikipedia.org/wiki/Isometrische_Perspektive_in_Computerspielen.
Aber eins nach dem anderen.
Ich habe herausgefunden, dass es drei wesentliche Optionen für die GUI-Entwicklung mit Java gibt. Ich muss dazu sagen, dass ich den Anspruch habe, immer mit der aktuellsten Version von Java zu arbeiten, derzeit Java 11.
AWT/Swing
+ in der Java-Standardbibliothek enthalten
+ viel Einsteigerliteratur
- wird nicht mehr wesentlich weiterentwickelt
- schon seit Jahren in vielerlei Hinsicht veraltet
- hässlicher Programmierstil notwendig (alles hartkodiert, keine deklarative GUI-Beschreibung, umständliches Layoutmanagement)
JavaFX
+ moderne GUI-Entwicklung
+ deklarative GUI-Beschreibung möglich, strikte Trennung von Funktion und Design (ähnlich HTML, CSS)
- kaum Einsteigerlektüre, vorallem Softwaredesign wird nicht wirklich behandelt
- wird nicht oft genutzt
- seit Java 11 aus der Standardbibliothek entfernt
SWT
+ alt, aber modern zugleich
+ solide
+ wird relativ oft verwendet (im Vergleich zu JavaFX)
- keine tiefgehende Einsteigerliteratur
Da ich ein Einsteiger bin, ist es mir wichtig, von guten Tutorials zu profitieren, um Anfängerpfusch und einen laienhaften Programmierstil gleich von Anfang an zu vermeiden. Ich bin da ein bisschen perfektionistisch. Traurigerweise scheint sich die Einsteigerliteratur vorallem auf AWT/Swing zu konzentrieren, während JavaFX und SWT eher für Leute gedacht ist, die schon viel Ahnung von AWT/Swing haben, und auf moderne Technologien umsteigen möchten. Deswegen liest sich Literatur für SWT und JavaFX meist wie ein Umsteigerleitfaden für Erfahrene. Wollte ich also direkt mit SWT bzw. JavaFX anfangen, bedeutete dies, dass ich viel querlesen muss und auch viele Anfängerfehler machen würde, vor denen ich bei guter Einsteigerliteratur, die es da nicht wirklich gibt, gewarnt worden wäre.
Hinzu kommt das Problem, dass ich generell noch keine Ahnung von GUI-Entwicklung habe, und daher höchstwahrscheinlich schlechte Softwaredesign-Entscheidungen treffen werde, wenn ich keine gute Anfängerliteratur nutze, auch wenn die GUI ihren Zweck erfüllt.
Ich sehe zurzeit zwei Strategien, um GUI-Programmierung zu erlernen:
Strategie 1:
Ich lerne, auch wenn es veraltet ist, GUIs in AWT/Swing mithilfe von guter Einsteigerliteratur zu programmieren, auch wenn es sich bei den GUI-Elementen dieser Bibliothek höchstwahrscheinlich um Wegwerfwissen handelt, um die guten Ratschläge und Grundlagen der Einsteigerliteratur mitnehmen zu können, und steige dann auf JavaFX / SWT um.
Strategie 2:
Ich lerne direkt JavaFX / SWT - Programmierung, auch wenn mir dann gute Anfängerratschläge durch die Lappen gehen könnten, und meine ersten Projekte rein funktionaler Spaghetticode werden.
Meien Fragen wären:
1. Welche Lernstrategie würdet ihr mir empfehlen? Gibt es evtl. noch eine völlig andere Lernstrategie?
2. Gibt es vielleicht auch doch gute Einsteigerliteratur für JavaFX und SWT, die auch Programmierer berücksichtigt, die GUI's noch nie unter der Haube angerührt haben?
3. Auch falls ich zuerst Swing lernen würde, früher oder später stellt sich dann doch die Frage: JavaFX oder SWT? Was sollte ich (zuerst) lernen?
4. Gibt es noch eine völlig andere GUI-Bilbiothek, die anfängerfreundlich ist und mit der viele Open-Source-Projekte, die man dann studieren kann, realisiert wurden? Könnt ihr die als Ersteinstieg in die GUI-Programmierung empfehlen?
Aber eins nach dem anderen.
Ich habe herausgefunden, dass es drei wesentliche Optionen für die GUI-Entwicklung mit Java gibt. Ich muss dazu sagen, dass ich den Anspruch habe, immer mit der aktuellsten Version von Java zu arbeiten, derzeit Java 11.
AWT/Swing
+ in der Java-Standardbibliothek enthalten
+ viel Einsteigerliteratur
- wird nicht mehr wesentlich weiterentwickelt
- schon seit Jahren in vielerlei Hinsicht veraltet
- hässlicher Programmierstil notwendig (alles hartkodiert, keine deklarative GUI-Beschreibung, umständliches Layoutmanagement)
JavaFX
+ moderne GUI-Entwicklung
+ deklarative GUI-Beschreibung möglich, strikte Trennung von Funktion und Design (ähnlich HTML, CSS)
- kaum Einsteigerlektüre, vorallem Softwaredesign wird nicht wirklich behandelt
- wird nicht oft genutzt
- seit Java 11 aus der Standardbibliothek entfernt
SWT
+ alt, aber modern zugleich
+ solide
+ wird relativ oft verwendet (im Vergleich zu JavaFX)
- keine tiefgehende Einsteigerliteratur
Da ich ein Einsteiger bin, ist es mir wichtig, von guten Tutorials zu profitieren, um Anfängerpfusch und einen laienhaften Programmierstil gleich von Anfang an zu vermeiden. Ich bin da ein bisschen perfektionistisch. Traurigerweise scheint sich die Einsteigerliteratur vorallem auf AWT/Swing zu konzentrieren, während JavaFX und SWT eher für Leute gedacht ist, die schon viel Ahnung von AWT/Swing haben, und auf moderne Technologien umsteigen möchten. Deswegen liest sich Literatur für SWT und JavaFX meist wie ein Umsteigerleitfaden für Erfahrene. Wollte ich also direkt mit SWT bzw. JavaFX anfangen, bedeutete dies, dass ich viel querlesen muss und auch viele Anfängerfehler machen würde, vor denen ich bei guter Einsteigerliteratur, die es da nicht wirklich gibt, gewarnt worden wäre.
Hinzu kommt das Problem, dass ich generell noch keine Ahnung von GUI-Entwicklung habe, und daher höchstwahrscheinlich schlechte Softwaredesign-Entscheidungen treffen werde, wenn ich keine gute Anfängerliteratur nutze, auch wenn die GUI ihren Zweck erfüllt.
Ich sehe zurzeit zwei Strategien, um GUI-Programmierung zu erlernen:
Strategie 1:
Ich lerne, auch wenn es veraltet ist, GUIs in AWT/Swing mithilfe von guter Einsteigerliteratur zu programmieren, auch wenn es sich bei den GUI-Elementen dieser Bibliothek höchstwahrscheinlich um Wegwerfwissen handelt, um die guten Ratschläge und Grundlagen der Einsteigerliteratur mitnehmen zu können, und steige dann auf JavaFX / SWT um.
Strategie 2:
Ich lerne direkt JavaFX / SWT - Programmierung, auch wenn mir dann gute Anfängerratschläge durch die Lappen gehen könnten, und meine ersten Projekte rein funktionaler Spaghetticode werden.
Meien Fragen wären:
1. Welche Lernstrategie würdet ihr mir empfehlen? Gibt es evtl. noch eine völlig andere Lernstrategie?
2. Gibt es vielleicht auch doch gute Einsteigerliteratur für JavaFX und SWT, die auch Programmierer berücksichtigt, die GUI's noch nie unter der Haube angerührt haben?
3. Auch falls ich zuerst Swing lernen würde, früher oder später stellt sich dann doch die Frage: JavaFX oder SWT? Was sollte ich (zuerst) lernen?
4. Gibt es noch eine völlig andere GUI-Bilbiothek, die anfängerfreundlich ist und mit der viele Open-Source-Projekte, die man dann studieren kann, realisiert wurden? Könnt ihr die als Ersteinstieg in die GUI-Programmierung empfehlen?
Zuletzt bearbeitet: