# Welches GUI Framework für Java ist aktuell?



## Zwerkplanck (9. Jul 2020)

Hallo,

ich habe mich hier angemeldet um meine Java Kenntnisse aufzufrischen. Was ist denn heutzutage, also 2020, für ein GUI Framework angesagt? Von JavaFX habe ich gehört dass das von Oracle eher abgestoßen wird. Ich dachte, das wäre so der Nachfolger von Swing? Was soll man dann aktuell nehmen als GUI?

Gruß Chris


----------



## LimDul (9. Jul 2020)

Java und Desktop Anwendungen ist meines Erachtens weiterhin eine Nische, seine Stärke spielt Java eher im Bereich Web-Anwendungen aus. 

Was ich (als Web-Entwickler) mitbekomme, würde ich sagen Java FX, aber da können andere vermutlich besser Auskunft geben.


----------



## Zwerkplanck (9. Jul 2020)

Danke für deine Antwort. Was wird denn für eine Programmiersprache auf dem Desktop häufiger eingesetzt?


----------



## Flown (9. Jul 2020)

Die Sache ist eher die, dass nur noch wenige Desktopapplikationen entwickelt werden.
Sonst ist egal welche Sprache/Framework. Java FX ist in Java halt das neueste UI Framework.


----------



## Zwerkplanck (9. Jul 2020)

Wie läuft dann die Bedienung der Anwenderprogramme ab, per Web GUI?


----------



## Flown (9. Jul 2020)

Nennen wir dann die Web GUI mal Webpage und da spielst du mit HTML/CSS + JS. Und dein Anwendungsprogramm ist der Browser.
Plus du brauchst eine Serverapplikation der dir die Businesslogik abarbeitet.


----------



## Zwerkplanck (9. Jul 2020)

Also scheint die Richtung eher in Frameworks wie Angular2 zu gehen und der ist dann egal welcher Backend nun über eine RestAPI angesprochen wird?


----------



## Flown (9. Jul 2020)

In Firmen ja, für persönliche Projekte muss man abwägen. Oft reicht da Swing/Java FX.


----------



## LimDul (9. Jul 2020)

Wir nutzen für unsere Anwendungen z.B. Vaadin als Frontend und als Backend entweder Java EE oder Spring Boot.


----------



## Zwerkplanck (9. Jul 2020)

Super danke für die Infos. Hintergrund meiner Frage ist folgendes. Ich mache gerade eine Umschulung als Fachinformatiker Anwendungsentwicklung und Suche nach Technolgien, die aktuell in Firmen eingesetzt werden. Java scheint ja immer noch sehr beliebt zu sein, besonders im EE-Bereich oder unter Android. Wie sieht es eigentlich mit C# und .NET aus und das in Verbindung mit Azure oder so etwas, ist das auch stark im Kommen?

Ist echt schwer sich bei den ganzen Technologien auf was zu konzentrieren. Man kann nicht alles lernen. 

Was an Technologien würdet ihr einem angehenden Anwendungsentwickler empfehlen um auf dem Arbeitsmarkt gut Fuß zu fassen?

In meinem Falle wäre der Einsatzort Berlin und für nächstes Jahr suche ich ein Praktikum für ein halbes Jahr, weiß aber echt nicht in welcher Richtung. Da ich Java aber noch ein wenig von früheren Hobbyprojekten kenne, habe ich erstmal daran gedacht. In der Ausbildung haben wir neben Java, noch C# und Python.


----------



## Flown (9. Jul 2020)

Also ich bin im Projektgeschäft in Österreich tätig (daher hab ich keine Ahnung was ein Anwendungsentwickler macht - ich selbst bin studierter Software Engineer). Unsere Kunden verwenden alle möglichen Arten von Technologien.
Von C#/.NET (ASP, Razor, ...), über Java EE (JSP, JSF, JAX-RS), Spring, PHP (Laravell, ...) bishin zu VB.NET.

Also wenn man die Prinzipien verstanden hat, machen es alle gleich gut/schlecht. Daher mal anfangen mit einer Technologie die einem bekannt ist und dann läuft das auch in anderen Sprachen ähnlich/gleich.


----------



## LimDul (9. Jul 2020)

Mit Java in Richtung Spring (Boot) macht man aktuell definitiv nichts falsch. Gut wir sind hier ein Java-Forum, da ist der Blick natürlich gefärbt. Aber im Enterprise Bereich, Enterprise Anwendungen ist Java meines Erachtens immer noch der Platzhirsch. Da geht der Schwenk eher im Bereich der Java-Bibliotheken, also weg vom Java EE Stack hin zum Spring und Spring Boot Stack. Wobei die natürlich sehr ähnlich sind und der Umstieg zwischen denen, wenn man es einmal verstanden hat, recht gut geht. 

Im Bereich Android / App Entwicklung würde ich nicht umbedingt sagen, dass Java da der Platzhirsch ist, da konkurieren viele Frameworks und Sprachen. Den in der Regel will man ja Android und IOS bedienen und das wird mit reinem Java Stack schwer.


----------



## Zwerkplanck (9. Jul 2020)

Super danke, genau solche Einblicke aus der Praxis helfen mir schon ein Stück weiter.

@*Flown*
Ist schon richtig. Das Problem bei Stellenausschreibungen ist oft dass die dort tiefgreifende Kenntnisse in der einen oder der Technologie haben wollen. Da scheint es nicht zu reichen, dass man die Grundlagen von Client Server Technolgien und deren Schnittstellen verstanden hat und sich rein arbeiten könnte.


----------



## MoxxiManagarm (9. Jul 2020)

Aus meiner Erfahrung würde ich auch definitiv raten GUI ausschließlich mit Webtechnologien zu erstellen. Auf welches Framework (Angular, React, Vue...) du  da zurückgreifst ist da absolut dir überlassen. Die Weboberfläche kannst du dann in jedem beliebigen Browser öffnen oder du erstellst dir mit einer Sprache deiner Wahl mehr oder weniger einen eigenen Browser. Du musst dem Anwender ja nicht zeigen, dass es ein "Browser" ist (kein URL Input, Vor-/Zurückbutton etc.). So kannst du z.B. auch mit JavaFX einen simplen "Browser" erstellen. Das Stichwort ist hier Webview. Eine Webview gibt es quasi in jeder modernen UI Lib, swing ist nicht modern  Ich persönlich bin ein Fan von electron (ein node.js Tool) um die Web-GUIs auf den Desktop zu bringen. electron basiert auf Chromium (ist leider daher auch entsprechend groß) und bringt aus diesem Grund auch viele aus dem Browser bekannte Funktionalitäten mit, wie die Entwicklertools.



Zwerkplanck hat gesagt.:


> Was an Technologien würdet ihr einem angehenden Anwendungsentwickler empfehlen um auf dem Arbeitsmarkt gut Fuß zu fassen?


CSS HTML JS für eben jene Webtechnologie, bei Bedarf mit Framework deiner Wahl.


----------



## Flown (9. Jul 2020)

Also ich würde auch statt hier Spring Boot zu empfehlen, auch klassisches EE oder auch Quarkus empfehlen (fürs Backend).
(Vl. aber auch nur weil unsere Kunden es so lieben - funktioniert alles gleich)


----------



## MoxxiManagarm (9. Jul 2020)

Node.js ist im Backend Bereich auch recht beliebt.


----------



## Zwerkplanck (9. Jul 2020)

Werde ich mir mal anschauen, danke.


----------

