6 ms·
>> When we tell people we have a native app, they get it. People go to our apps page, download the installer and see everything exactly as they expect things to
by psyklic 10y ago
>> When we tell people we have a native app, they get it. People go to our apps page, download the installer and see everything exactly as they expect things to be.
The term "native" is used to describe apps developed for a specific operating system. By this definition, clearly Electron apps (and hence Postman) are not native apps.
Having to download an installer doesn't make it native. On smartphones, all apps are installed in the same way. Yet, some are native and others use WebViews.
I am making no comment on Postman's quality (in fact I am a customer). However, advertising Postman as native seems a bit disconcerting to me.
- alnitak 10y agoThe pedantic force is strong here.
- debaserab2 10y agoNot really. Especially not on Hacker News. There's an expectation when someone says native app that you're getting a binary that you compiled from source you created with a reasonable expectation of performance. No one thinks native as being a webview wrapped executable where the authored source is actually a series of HTML, CSS, and javascript. They just don't. Calling it "native" is a misnomer.
- wging 10y agoYou're right about the meaning of 'native', but if you expect to have a 'reasonable expectation of performance' just because an app is written as a native binary, you may be sorely disappointed. There are plenty of poorly performing native applications out there, and it's also certainly possible to write minimal, fast HTML/CSS/JavaScript.
- jorvi 10y agoThat's comparing outlier to outlier. If you compare two averagely coded apps, something written in C++ will make an absolute joke of something written in Javascript.
- debaserab2 10y agoAbsolutely. But you don't start out with a large memory footprint like an electron app, you actually have to code yourself into that problem instead of immediately inheriting it. I'd still argue that most people are going to assume that a native app is probably faster than your average electron app, for a whole host of reasons.
- batmansmk 10y agoWhat about using electron with the cachedData option...? Or some webassembly thrown into the mix? Is native a development style or a product?
- a85 10y agoWhat if the application does have compiled libraries generated from the authored source?
- debaserab2 10y agoI'm not trying to define what a native app is, I'm only explaining the way many users such as myself perceive it today. The waters are obviously getting much murkier on what fits the definition of native and it does look like the writing is on the wall that the state javascript on the desktop is just going to continue to improve.
- Qwertious 10y agoPeople who aren't pedantic in tech end up wasting thousands of dollars due to miscommunication.
- kwhitefoot 10y agoI wish I upvote this more than once.
- JustSomeNobody 10y agoWords have meaning. Native doesn't mean browser in a window. Same as realtime doesn't mean "it'll get there faster. Maybe"
- Touche 10y agoWords do have meaning but "native" has pretty unclear meaning. Is JavaScript native? JavaScript is interpreted when it first starts, but eventually turns into machine code through JIT by most JS engines. So is JavaScript native because it gets converted to machine code, just as C++ does? If you say no, then you're saying only AOT compiled languages are "native". So that eliminates Python, Erlang, Java. Even C#, the "native" language on Windows is not AOT (in most cases). So that doesn't work, AOT has nothing to do with native. JavaScript is just as native as any other language. So maybe the problem is the UI, right? That's where most people seem to have a problem. So as long as you are using Cocoa on OSX, GTK on Gnome, Metro on Windows, you're native, right? Oh, wait, Metro apps can be written using HTML, JS, and CSS. They are essentially identical to Electron apps. In fact, Microsoft supports (and encourages) you to create .appx packages from Electron apps [1]. Oh, and all of those Qt apps out there (like Calibre, by far the best ebook management software), not native (despite being C++ in a lot of cases). So yeah, "native" has meaning, but the meaning is as clear as mud. [1]https://github.com/felixrieseberg/electron-windows-store https://github.com/felixrieseberg/electron-windows-store
- deleted 10y ago[deleted]
- logicallee 10y agoJust commenting that that is a very good definition of what realtime isn't! :)
- shamasis 10y agoAh! 15 years back I knew APIs were those Win32 ones listed by Microsoft to access insides of Windows. Things change.
- arithma 10y agoWhy not call it "standalone app" (Chrome-less! though that might be confusing for other reasons.)
- lloeki 10y agoMattermost (and Telegram?) call the electron-based apps "desktop apps", which is I feel is a nice tradeoff: not native but not browser.
- garaetjjte 10y agoI think Telegram uses Qt.
- KuiN 10y agoYep, Telegram on Desktop uses Qt. It's even open-source and on GitHub: https://github.com/telegramdesktop/tdesktop https://github.com/telegramdesktop/tdesktop
- rvanmil 10y agoThere's a separate macOS version as well: https://github.com/overtake/telegram https://github.com/overtake/telegram
- lloeki 10y agoThey used to have two apps, one using Cocoa (named "Telegram") and the other Electron (named "Telegram Desktop"). They transitioned the Electron app to QT and kept the "Telegram Desktop" name.
- Mithaldu 10y agoElectron is a browser though, just one with a lot of the chrome cut out.
- TeMPOraL 10y ago
- Ajedi32 10y agoI think the line's a lot more blurry than you make it out to be. Not only are Electron apps often visually and functionally indistinguishable from "native" applications on their respective platforms, but there are also varying degrees of integration with the underlying platform you can have within Electron apps. For example, Electron supports including native modules which have to be compiled for a specific platform. How many of those would an Electron app have to use before it's considered "native"? Or what about an app like Spotify, which only uses a web view for certain components of the UI and everything else is written in C/C++? Does merely using an interpreted language like JS or Python anywhere in your app mean it's no longer native? Also, keep in mind that this blog post was written for Postman's users, it's not a technical write up. Postman's users may be more technical than most, but they still shouldn't have to know or care what underlying technology was used to build Postman's desktop apps. From their perspective calling them "native" apps is perfectly accurate, as they behave as native apps in every respect.
- swiley 10y agoElectron apps are most certainly not functionally indistinguishable from native apps. They are always much larger and always seem to consume orders of magnitude more resources (memory, CPU.) If despotify still worked I would absolutely use that instead of the slow, buggy webview based official client. People want native apps because they don't want the cooling/memory/power consumption from the web, as well as their delay tolerance and consistent UI. Electron can only provide the second (and sometimes the third.)
- a85 10y agoThat's a valid concern and I believe all developers who are working on the platform will address this. If memory/power consumption on laptops was so draining just because something was in HTML/CSS/JS, I believe people would have stopped using browsers or probably just stuck to 1-tab per browser.
- Ajedi32 10y agoPerformance is a property of an application as a whole, not just the framework it's built on. While you can certainly argue that apps which use webviews are slower on average than their native counterparts; Electron-based apps aren't necessarily always going to be slow; and native apps aren't necessarily always going to be fast. Therefore, since a user cannot conclude that an app is "not native" merely by observing its performance, Electron apps cannot be said to be functionally distinguishable from native apps merely because they're slower, on average, than other applications.
- alok-g 10y ago>> The term "native" is used to describe apps developed for a specific operating system. I would have said that "native" means compiled for a specific operating system or a processor. If someone develops an app using Qt which then works on multiple operating systems, it would still be considered native.