As for slow startup, just be careful with library selection.
I think these tradeoffs are okay for backend services, but I agree that they don't belong in user-facing applications if it can be avoided.
I think you're thinking for SWT (the toolkit used by Eclipse) which will use native components for each OS.
SWT is kinda difficult to use and last time I checked, all the Scala bindings/wrappers were crap or non-existant, making it a non-starter for me.
JEP 283: Enable GTK 3 on Linux
http://openjdk.java.net/jeps/283
Opening paragraph "Java on Linux currently uses GTK 2. This raises several issues:"
The problem are the ones too lazy to call,
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/...When it was introduced they didn't want to break the L&F of AWT applications, then they also added multiple ways of enabling it.
So a good application should respect the system wide or user specific settings if available, instead of just blindly use whatever L&F it feels like.
Also although many complain about how Swing looks like, the API is actually quite powerfull and skinnable, even if it requires some graphic programming skills to achieve it, for example see JGoodies or UltraMixer DJ.
https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/...
---------------------------------------------------------
|Platform | Look and Feel |
---------------------------------------------------------
|Solaris, Linux with GTK+ 2.2 or later | GTK+ |
|Other Solaris, Linux | Motif |
|IBM UNIX | IBM* |
|HP UX | HP* |
|Classic Windows | Windows |
|Windows XP | Windows XP |
|Windows Vista | Windows Vista |
|Macintosh | Macintosh* |
---------------------------------------------------------
Apparently not many bother to learn how to take advantage of Swing APIs.And saying all applications should set it to SystemLookAndFeel would be wrong, as they should respect the user's settings if they exist.
_JAVA_OPTIONS='-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'> Apparently not many bother to learn how to take advantage of Swing APIs.
> saying all applications should set it to SystemLookAndFeel would be wrong