AWT is somewhat dead, will JavaFX survive?

Davide Perini perini.davide at dpsoftware.org
Wed Oct 2 12:47:24 UTC 2024


Hi Kevin,
I'm the submitter of the following bug reports:

https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8341144
https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8310352
https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8323821
https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8341173
https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8323977

These issues arose during the development of a toy application.

Specifically, regarding the tray icon functionality, GNOME can't fix 
issues that require changes to the underlying AWT libraries.

Linux has switched its focus to SNI and many distributions are dropping 
support for legacy xembed protocols.

As previously mentioned, while JavaFX is a powerful framework, it still 
relies on Swing/AWT for certain functionalities to create full-fledged 
desktop applications. However, the development of Swing/AWT seems to 
have stagnated.

If the plan is not to invest further in Swing/AWT development, then 
perhaps a clearer communication strategy is needed. It would be 
beneficial for developers to know if Swing/AWT is no longer the 
recommended path for desktop applications, and if so, what alternative 
approaches are suggested.

Furthermore, AWT is still relying on outdated Windows 98 APIs for 
notifications. This approach is problematic considering the recent 
changes introduced in Windows 11 that have broken OS notifications 
within Java applications.

Notifications are a crucial aspect of many applications, and even web 
apps are increasingly leveraging native OS notifications for a better 
user experience.

The core issue here isn't with JavaFX itself; rather, it's the fact that 
JavaFX alone isn't sufficient to develop full-fledged apps that need to 
interact with the operating system for functionalities like tray icons 
and notifications.

I am a big fan of JavaFX. It's a user-friendly and productive framework 
for UI development. However, my experience highlights the limitations of 
using JavaFX for applications requiring deeper interaction with the 
underlying operating system.

Is there any movement to address these shortcomings?
Could JavaFX potentially take over the responsibilities of AWT and 
Swing, providing a more unified and up-to-date API for these features?
Additionally, are there plans to update AWT and Swing to replace 
outdated APIs that are over 25 years old?

Kind regards,
Davide

On 01/10/2024 01:24, Philip Race wrote:
>
>
> On 9/30/24 3:33 PM, Kevin Rushforth wrote:
>> Swing / AWT is still being actively maintained and isn't "abandoned". 
>> What you are describing are bugs. Have you filed them?
>
> Perhaps Davide is the submitter for this TrayIcon bug submitted 2 days ago
> https://bugs.openjdk.org/browse/JDK-8341144
>
> FWIW TrayIcon recently suffered from a regression bug in the Linux desktop
> Gnome have now fixed it so it should be OK if you are on the latest 
> distros.
> https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/2127c62b210f605747e019e6e2abee82516e3ccb/NEWS#L152
> Corresponding JDK bug : https://bugs.openjdk.org/browse/JDK-8322750
>
> And we've done loads of updates for new OSes to keep things current 
> and working.
> Right now we are just wrapping up a JCP maintenance release (a 
> significant investment) and the
> backports of everything needed to be able to support Wayland on Linux.
> That's not abandoned by any reasonable criteria.
>
> -phil.
>
>
>>
>> And yes, we know that that there are missing features in JavaFX 
>> relative to Swing like desktop integration and Image I/O to name two 
>> important ones. I guess the question for you and other app developers 
>> are: which ones are the most important that there be a native JavaFX 
>> solution for?
>>
>> -- Kevin
>>
>>
>> On 9/30/2024 2:17 PM, Davide Perini wrote:
>>> Hi,
>>> thanks for your time, I appreciate the answer.
>>>
>>> I love JavaFX and my concern is sincere.
>>> JavaFX is not a "complete solution" to build UIs because it relies 
>>> on AWT for basic and important features like a TrayIcon for example.
>>>
>>> AWT is abandoned, most of its APIs is falling apart causing issues 
>>> on modern OS.
>>>
>>> That's why of my question. If AWT is abandoned, how can JavaFX 
>>> survive this?
>>> Does it has sense in developing JavaFX if Oracle abandoned AWT?
>>>
>>> I know that JavaFX devs thinks that AWT and JavaFX are two separate 
>>> things but for devs that must develop a software that has a UI,
>>> JavaFX is not enough because JavaFX has "nearly no integration with 
>>> the OS".
>>>
>>> I mean, how can we convince new developers to jump on JavaFX if the 
>>> "surroundings" are in this state?
>>>
>>> Davide
>>>
>>>
>>>
>>> On 28/09/2024 20:37, Johan Vos wrote:
>>>> I got the question "Will JavaFX survive?" very often since I became 
>>>> co-lead of the OpenJFX project, about 7 years ago. OpenJFX is a 
>>>> technology project and contrary to most client frameworks OpenJFX 
>>>> itself has no marketing department with "devrels" etc.
>>>> The resources working on OpenJFX are focusing on the technology. 
>>>> And I am very proud to see that the code you could write for JavaFX 
>>>> 9 is still running today on JavaFX 23. I don't think many client 
>>>> technologies can say the same.
>>>> The diverse contributors to the OpenJFX project are doing a 
>>>> fantastic job in maintaining and advancing the technology in the 
>>>> spirit of OpenJDK and Java in general. Granted, I sometimes wish we 
>>>> (as in OpenJFX) had some marketing efforts of paid devrels to 
>>>> spread the word at many conferences. But as developers, our first 
>>>> priority and main skills are in working on the code.
>>>>
>>>> - Johan
>>>>
>>>> On Sat, Sep 28, 2024 at 5:17 PM Davide Perini 
>>>> <perini.davide at dpsoftware.org> wrote:
>>>>
>>>>     no answers, means a lot...
>>>>
>>>>     On 26/09/2024 17:44, Davide Perini wrote:
>>>>     > As title.
>>>>     > AWT is too old to withstand the future and probably it's too
>>>>     old to
>>>>     > withstand the present.
>>>>     >
>>>>     > AWT is falling apart with old APIs breaking as operating
>>>>     systems move on.
>>>>     >
>>>>     > Even very important features like tray icons and
>>>>     notifications are
>>>>     > broken.
>>>>     > Something is broken in Windows, something in Linux, something
>>>>     on macOS.
>>>>     >
>>>>     > Current notification APIs is old and is somewhat broken in
>>>>     Windows
>>>>     > with notification that doesn't stick in the notification center.
>>>>     >
>>>>     > SystemTray on Linux is completely broken because it still
>>>>     uses the
>>>>     > ancient xembeds instead of the newer SNI.
>>>>     >
>>>>     > I love JavaFX but will JavaFX survive the fact that AWS is
>>>>     abandoned
>>>>     > and that it is falling apart?
>>>>     >
>>>>     > Is there something moving to renew AWT or it's just kicking a
>>>>     dead horse?
>>>>     >
>>>>     > Thanks
>>>>     > Davide
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-discuss/attachments/20241002/1e8d6138/attachment-0001.htm>


More information about the openjfx-discuss mailing list