Native GUI frameworks can be more of a challenge. Still, if you want a native L&F your alternative is to code each platform individually, then something like this (or wxWidgets/SWT/etc.) is likely to be a lot less work (but likely to look a bit less native). Trade offs. Good to have choices I think.
It's very strong for the many "good enough" scenarios that range from complete products in domains like pharma where users will tolerate user experience glitches as long as they can be using the same Pandas code behind the scenes on multiple OSes, or utility-level apps that need to run on multiple platforms. These are often tucked away in places that HN readers are averse to exploring from a career perspective.
The toolset for "Write once. Deploy everywhere." that works is HTML + JS + CSS and nothing else. This is because browsers work about the same everywhere.
IMHO if an app is not going to leverage the platform but will simply show some UI to display or collect data, the way to do it is HTML + JS + CSS in the browser.
When you try to support platform specific features, you end up doing much more work but instead of working on the primary App, you spend you time on integration and replication of platform behaviour or functions.
> that works is HTML + JS + CSS and nothing else.
That type of UI mostly works for "reader" applications - when maximum what you do is clicking on buttons and filling couple of <input>s.
For "creator"'s applications, CADs, editors, IDEs, and so on, HTML + JS + CSS is far from being perfect. At least without special means that extend these technologies to acceptable level.
Menu shall be menu but not that position:absolute something, dialog shall be modal window, drawing shall support immediate mode, keyboard interaction shall be there, and so forth.
I think that’s possible when the App and user interaction model is completely custom - like shooting zombies or drawing 3D shapes.
That's also party why browsers can't replace every app(the browsers have it's own opinion about the UI and interactions), the other reasons are performance and access limitations.