5 ms·
This isn’t a native desktop app. It’s running Chrome in the background (even downloading it if Chrome isn’t found). This isn’t meant as a criticism against thi
by laumars 5y ago
This isn’t a native desktop app. It’s running Chrome in the background (even downloading it if Chrome isn’t found).
This isn’t meant as a criticism against this project though. Just that “native desktop app” means something specific and that’s not what this is.
- 5e92cb50239222b 5y agoWelcome to the Newspeak world. Web is "native", hypervisor-less is "bare-metal", CGI hosted by a third party is "serverless". I feel like a fossilized museum curiosity.
- madeofpalk 5y ago> “native desktop app” means something specific honest question - what does it mean? Is a Qt app "native"? Or does "native" just mean "any language other than javascript"?
- erklik 5y agoI 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.
- starbugs 5y agoNative has different meanings, depending on context. In this context, it means: the binary has been compiled for the platform and the code is executed natively, that is without a VM or interpreter. JS in browsers is commonly not considered native, while QML somehow is. Don't ask me why :)
- postalrat 5y agoSo is chrome a native app?
- deleted 5y ago[deleted]
- starbugs 5y agoBy that definition, yes, but not what runs inside a Chrome tab. I could imagine that the settings, history, etc. is not implemented natively. Didn't look into the code though. As a rule of thumb: If it is compiled for a specific target architecture, it's native code. If not, it's not and you need some other native code to run/interpret your non-native code.
- lionkor 5y ago"Native" is generally something that runs on a machine directly, in some way. I think of it like this: What does *my code* target? For example, if it targets x86_64, it's native (at least on x86_64). If it targets cpython (the python interpreter), then it's not native. The fact that cpython is native is irrelevant. Same with this project - it targets the browser's JS engine, V8. Hope that P.S: I don't think downvoting without commenting is constructive.
- MaxBarraclough 5y agoBy that definition, there are close to zero native applications out there. Just about the only code that truly targets a specific CPU architecture, is assembly code. Even C++ programs don't target a CPU architecture, they essentially target a C++ virtual machine. Much like the JVM, recent versions of the C++ language define their own concurrent memory model. It's the C++ memory model that the programmer much reason about, not that of the target CPU. (Again, the same thing goes with Java, and with C#/.Net.) The build model isn't the whole story as to whether a GUI counts as native. We don't much care whether Electron uses a caching JavaScript JIT, when discussing whether Electron UIs should be called 'native'. 'Native GUI' is one of those imprecise/overloaded terms that can't really be given a single definition. It could be understood to mean written using the language and toolkit preferred by the target OS, or it could just mean uses the GUI toolkit preferred by the OS, or these days it might be understood to mean doesn't use web technologies. Using the latter definition, even a JavaFX program might count as 'native'.
- thih9 5y agoTo me "native desktop app" means "written for that particular platform", i.e. something that integrates well with that platform. And for GUI apps, also something that uses UI libraries provided by that platform.
- madeofpalk 5y agoSo, a website, which on Mac uses a bunch of native UIKit text inputs, buttons, checkboxes and selects is native?