Hacker News new | ask | show | jobs
by millstone 3920 days ago
You certainly do not get all the benefits. In particular you miss out on the shared "UI vocabulary" that comes from building on a common toolkit. This vocabulary means that users already know how to use your app, because you follow the platform conventions. Build on web technologies, and you are left either ignoring the conventions entirely and producing something very alien, or trying to recreate them from scratch and falling into the uncanny valley.

For example, look at Atom. I can type Command-Z on my keyboard to Undo, but it's non-native-feeling in lots of ways:

1. The menu bar doesn't highlight to register that I typed a key equivalent

2. The Undo text doesn't change to e.g. "Undo Typing," telling me what I will Undo

3. The menu item doesn't properly disable when there is nothing to Undo

4. The menu item doesn't respect my settings in Keyboard preferences

etc. etc. And that's just one feature - but it's every feature.

Needless to say, that stuff comes for free or with very low friction natively.

Qt is a bad representative of the native experience, because Qt is non-native everywhere except on Linux, which doesn't have strong UI conventions to begin with. Qt apps definitely feel alien on the Mac.