Hacker News new | ask | show | jobs
by tjsix 4211 days ago
What is so terrible about tools like MacGap, Node Webkit, Atom Shell, etc? They are great prototyping tools and especially useful for things like 'in-house' apps where tools can be rapidly developed and updated as needed.

While the argument could be made that Node Webkit and Atom Shell aren't necessarily 'native' apps, MacGap on the other hand needs to be compiled with Xcode just like any other mac app and can be modified/extended to use any native library/functionality one wishes to use. Ultimately it's simply a starter project with an API built in to communicate from js to obj-c via a webview. It's unclear how this no longer makes it not a 'native app'. If that's the case the Mac App store is not a native app either since it uses a webview i.e. html, css, js for the store's content

1 comments

Native means code is compiled down to binary and run on the bare hardware. This project says it is explicitly run through the WebView, which is a HTML interpreter/renderer - by definition not native.

Where did he said the App Store is native? He didn't. He said claiming interpreted apps are native is a terrible idea and false advertising, which it is.

So by your definition, any app that contains any code that requires any type of interpreter is no longer a native app? That's just silly.

Nowhere does it say that it has to be run exclusively through the webview using only HTML/JS. Only the javascript API is run through the webview. Whether you choose to use only a webview is up to you, you're not limited to strictly HTML like many other similar solutions.

My definition of a native app excludes applications that are mere wrappers for 90% of the application code. If the majority of an application is written in JS/HTML/CSS, which I have no problem with, then don't call it native, because it's not.

Why would you use a tool if you're not going to make extensive use of it? It may not say that it has to be run exclusively through webview, but if you're only putting 2% of the application through it, why wouldn't you just configure your own web view control?

A native application means the entire application executes on barebones hardware. Web Browers are native, since they don't actually comprise of the web-pages that they run, the web browser is limited to the actual native code that interprets, executes, and renders the HTML/JS/CSS.

I think it's fair to say there is more than one definition of 'native'. When discussed in a performance context, it usually means "compiled not interpreted", as you suggest. But in a different context, it just means an app that you have in your Applications folder, as opposed to something you access by visiting a URL in your web browser. Whether you like it or not, this latter definition is what a lot of people mean when they use the word native. It's certainly how I read the word on the MacGap site - I never thought for a moment that they are claiming to somehow 'compile' HTML into machine code. So I don't think it's false advertising.
How do you feel about things like EVE Online then? IIRC, the game client is mostly python, with the performance-critical bits written in C++ (or is it C? I forget).
Edit: In the context that they're using the word to mean "An Application Available in their Applications/ Folder," I really have no problem with that (as Pointed out in a response to this comment).