Hacker News new | ask | show | jobs
by jfengel 2038 days ago
For me the big win is that it feels familiar to users. It's not a native app, but it looks like their native browser.

Users are acutely sensitive to apps that feel right. It's something Java learned the hard way, or not at all: there's an uncanny valley if you get it wrong, and users hate that. Native apps will always be better than a web app, but a web app will be better than an app that doesn't really have a home on any platform.

It would have been great if users were willing to say, "Oh, I know this, it's a Swing app, just like the one I used on my Mac/PC/Linux/etc." But Swing never really succeeded, and web browsers did.

4 comments

Users don't recognize Swing, but I wouldn't say it didn't succeed. There are an unbelievable number of little utilities, obscure programs, and company-internal tools written in Swing that people use every day and don't really think about. Swing didn't catch on much for big name software, but it still manages to be everywhere, and is much of the reason a lot of intermediate users reflexively install Java on new systems when they get them.
I think you are spot on about the uncanny valley of non native apps that try to look native. Java Swing apps or Qt apps look and feel bad on Mac or Windows. It's a bit better on GNU/Linux but a GTK app in a KDE environment or a Qt app in a Gnome environment will feel a bit wrong. Meanwhile an Electron app will look very normal and modern.
Exactly: a world full of Chromium natives. I'm torn between accepting this while waiting for the next paradigm shift, and resisting it out of a sense that someone has to.
This is how I feel about Flutter today. Seems like a cool paradigm on the face of it, but they never feel native nor do they feel like a WebView or what-have-you. They're in their own uncanny valley.