3 ms·
I am guessing it means something that is non-cross-platform. Would JVM be considered native? Native, as far as I understand, tends to mean it's designed to run
by erklik 5y ago
I am guessing it means something that is non-cross-platform. Would JVM be considered native?
Native, as far as I understand, tends to mean it's designed to run on that specific platform i.e. not cross-platform. Anything that is cross-platform is by default, not native.
- Xevi 5y agoIsn't Flutter supposed to be the default GUI framework for Fuchsia? In that case the native GUI framework would be non-native.
- hnlmorg 5y agoNative means using the host APIs. You can be cross platform and still use host APIs, albeit that's typically a compile time option. But the same is true with Electron et al because they compile an PE (Windows) or ELF (Linux), etc and that PE wouldn't run on Linux any more than the ELF would on Windows. You can also have applications that some might describe as native but they don't use the host OS's graphical widgets (for example using GTK+ on Windows). I think that's acceptable if you're using other host APIs eg for sound, multi-threading, file system access, etc. It should be clear that in those instances it's a native application with non-native widgets. The main reason I'm happy to accept that edge case is because of my previous history in game development. But for desktop applications some are stricter. Web applications are not regarded as "native" because they all run inside a virtual machine (the browser) whereas the browser would be a native application. What this does is pretty much exactly the same as Electron except instead of bundling Chromium with the website, it starts a webserver and then forks an existing Chrome install to access that local webserver. Either way it's still a web application rather than native application. However the benefit with this model is you arguably get some memory savings by not having to run multiple instances of Chromium.