3 ms·
"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
by 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'.