Hacker News new | ask | show | jobs
by JohnDeHope 86 days ago
> cross platform GUIs are ugly by default, compared to fully native desktop apps, because they don't entirely replicate the affordances or the style of the platform;

I think this is an implementation detail. It's up to the software stack whether it leaves off before drawing the UI elements on screen, or goes ahead and takes on that responsibility too. The wxWidgets toolkit uses the runtime platform's UI, so it does not draw the widgets themselves. Java Swing took on the task of drawing the UI elements on the screen in its own style.

2 comments

When OS X was new, Apple was still under the assumption that Java on the desktop was important, and they built an in-house Java with full Aqua support. It was still _terrible_! All the Aqua-specific affordances like animation or shadows were janky or absent. Sizing and positioning always felt weird because the application was written assuming Windows-shaped controls.

Basically, cross-platform GUI only looks good on the platform that it was originally designed for. Unless the other platforms make zero interesting choices, they will always look worse.

> cross-platform GUI only looks good on the platform that it was originally designed for

Formulated more rigorously, cross-platform GUIs and outsider, non-Mac-first GUIs ported to Mac OS look (and feel) bad on Mac. The opposite is virtually never true though; there aren't really high standards for beauty or consistency on the other platforms. Windows, for example, in this decade is a mishmash of different toolkits (even from Microsoft). Desktop GNU/Linux people comprise a faction consisting of people that either doesn't care about GUI beauty or have standards that are about on par with Windows folks—and are generally so grateful just have an app that ships* their platform, that they won't reject outright any Mac-first app (and that would be true even if it painted itself as a pixel-for-pixel match of the Mac OS version).

* and runs; I still run into "cross-platform" apps that are Electron builds packaged as AppImages that still terminate at launch, even if you try to run them on something as unremarkable as Ubuntu

> The opposite is virtually never true though; there aren't really high standards for beauty or consistency on the other platforms

The beauty is in the eye of the beholder. I don't find Apple UI beautiful and consistency is missing in some places at least on iOS.

I don't think that's actually true. OS X really wants more whitespace between controls than other OSes do. If you just naively port an OS X dialog to Windows or Linux, it'll seem too spread-out.
And what are your thoughts on Frito chili pie?
> Java Swing took on the task of drawing the UI elements on the screen in its own style.

Sun/Oracle also cheaped out by not having designers. If you see Flutter, they are able to recreate all of the platform specific widgets purely by having design engineers eyeball the implementations until they replicate the exact color and timing of every animation. Oracle/Sun was cheap and lazy.