On Native Apps

GitHub released its Mac client. It’s very top notch, and has a very modern feeling. rjh29 on HN wonders why GitHub would create one native app for one platform rather than basing on something like Qt to build a native app that works on as many platforms as possible. And I argue,

The definition of native app has changed. It’s no longer a synonym for compiled binary; or using native widget. It is not as simple as coding your UI in a cross-platform toolkit. In these days, a native app means something that feels like the built-in apps: it’s beyond skinning and appearance and is more about how the app as a whole interacts with the user to get the job done. As the platforms diverge, it’s now really hard – if not impossible – to make a cross-platform native app. Among Performance, Cost, Time, Scope, you can only pick three. GitHub sacrifices the scope.

catch23 else pointed out an interesting story on the use of cross platform widget set,

Reminds me of when Intuit was building out Quicken — most of their versions were built using cross platform tools, but inside the code it became a big mess and most recently they decided to scrap the whole thing and re-write the mac client in native objective-c instead of c++

After many years of pushing the concept of platform independence, we finally come to realize that it is not an excuse for end user independence. We should not favor developer convenience over user experience.