Hacker News new | past | comments | ask | show | jobs | submit login

For me it goes the opposite direction.

On mobile only apps. The Web is for reading stuff.

On the desktop the same thing, except for all those forums and travel booking websites that don't offer me a choice.

Messaging, email, productive software, work related stuff all native software.

Exception being when some customers do require web projects.




> all those forums and travel booking websites that don't offer me a choice.

So you would prefer to have the friction of an app store, or even just a platform-specific native executable, for every little service? And of course there's also the friction on the developer side, especially when submitting to app stores which act as gatekeepers.

Sure, native apps have better performance and often a better user experience all around, especially mobile apps. But your comment about forums and travel booking websites has got me thinking that we should really try to solve the performance and UX issues of the web platform rather than retreat to native apps.

Edit: Yes, I've taken both sides on the web versus native debate. I recently posted that JavaScript-based mobile web apps are second-class compared to AOT-compiled native mobile apps. I attribute my latest flip-flop to the fact that just last night I went through the tedious process of submitting a new app to the iOS App Store -- an app that could probably have been a web app. So now I want the web to win.


> So you would prefer to have the friction of an app store, or even just a platform-specific native executable

What friction?

    apt-get install $PACKAGE_NAME
Native apps will always be far superior to the web, because the web browser (at least, any with that claims to care about security) is required to maintain a separation between the "page" and the browser that frames the page, or you trivially enable "phishing" and other UI-impersonation attacks. Native has far more flexibility.

Personally, I absolutely hate the jitter every time Javascript (or most other VMs) decides to GC for 50ms or more, and will go out of my way to avoid it.

> app stores which act as gatekeepers

So stop supporting those gatekeepers, both as a developer and as a user. As long as people keep giving them money and market share, they will continue to gain power as gatekeeprs.

> try to solve the performance and UX issues of the web platform

That would require defining a new platform that isn't the web. The web is a document-based design, and while a lot of clever tricks have been found that let people pretend it's something else, all of the core components of the web (HTML, etc) are designed for documents. This is good - we need a way to freely exchange documents.

If you want a way to develop applications that can be distributed as easily as documents are on the web, it would probably be a good idea to create some VM base portable application format that was actually free of stuff like HTML/CSS. An HTML replacement that worked more like a GUI toolkit would be much nicer for app development.


> because the web browser (at least, any with that claims to care about security) is required to maintain a separation between the "page" and the browser that frames the page, or you trivially enable "phishing" and other UI-impersonation attacks. Native has far more flexibility.

I'm not going to deny that native apps have more power to interact with hardware resources—though I would question whether that's a good thing for most applications I use—but this isn't a good place to draw a distinction. Window managers have to maintain the same security guarantees (look at the trickiness behind the impersonation protection in Windows Vista's UAC for example), and that's all the browser is in this context: a compositing window manager.

> If you want a way to develop applications that can be distributed as easily as documents are on the web, it would probably be a good idea to create some VM base portable application format that was actually free of stuff like HTML/CSS. An HTML replacement that worked more like a GUI toolkit would be much nicer for app development.

Besides the fact that this is unrealistic, I don't see how this would end up significantly better than the modern Web platform. JS is already faster than Objective-C in method dispatch. Use flexbox and the "document-oriented" layout goes away. Use simple graphics and your painting will be quick.

Honestly, speaking as someone who's measured this stuff a lot, the main thing that's slow in the Web that native doesn't have is style recalculation and layout. This is not insignificant, but I think any portable application delivery platform needs both of these. Native often gets by with hardcoded style and pixel layouts, but that obviously doesn't work on anything that has to run on arbitrarily many devices. Add in restyling and you pay a performance penalty, but redesigning the system from scratch isn't going to eliminate that penalty.

It's a common meme that "just reinvent the Web around applications and it'll be faster", but I have yet to see specific suggestions that would both preserve portability and aren't implementable in the existing Web platform. That's not to say browsers of today are optimally architected, of course.


> Window managers have to maintain the same security guarantees (look at the trickiness behind the impersonation protection in Windows Vista's UAC for example), and that's all the browser is in this context: a compositing window manager

Browsers supply a lot more than that window management: menus, key event handling, find, scrollbars, etc. You don't have the ability to hook into these with enough flexibility, which is why Gmail has 1998-era pagination (which is still better than Yahoo Mail's janktastic infinite-scroll).

The web simply doesn't let you show lots of email in a table like Mail.app, or even Google's native gmail app.

> It's a common meme that "just reinvent the Web around applications and it'll be faster"

Faster isn't really the point. Gmail is definitely not slow. Where it (and all web apps) fall short is in their lame UI, attempting to recreate desktop metaphors under the limitations of the web. Examples are its mystery meat keyboard shortcuts, almost-but-not-really context menus, its fixed-size non-draggable "windows" (chat, compose, etc).


> What friction?

> apt-get install $PACKAGE_NAME

Desktop Linux is a lost cause, except for hackers' workstations. For any application targeting the general population, these days we should probably assume a mobile device, which means either the app stores or the web (or both, if you can manage that).


" it would probably be a good idea to create some VM base portable application format that was actually free of stuff like HTML/CSS. An HTML replacement that worked more like a GUI toolkit would be much nicer for app development."

People are working on it. Have a look at flutter.io or Qt and QML


Actually this was one of the goals of XHTML, but then the HTML 5 movement killed it.

Had it worked out we could have gotten something like XAML, instead of the current Frankenstein model filled with workarounds and still failing short of a native experience.


> What friction?

    apt-get install $PACKAGE_NAME
This friction.

Both on the side of the user who would need to go through an install process that is often an order of magnitude longer than loading a web page, and on the side of the developer who needs to go through the tedious process of developing and packaging their apps for every single native platform they want to support.


Everything in life worth having requires some effort.


I'd prefer this in many cases as well. I can use web versions of Evernote, Pocket, OneDrive, Email, but I would much rather use their platform specific native executables. It's a better, faster experience that integrates better with the device I'm using. I could watch Netflix in my web browser, but the Windows 10 app is faster & smoother. It even irritates me when the Kindle Android App drops me out to a web browser to browse the store & buy more books, instead of just letting me do it all from within the app.


> So you would prefer to have the friction of an app store, or even just a platform-specific native executable, for every little service?

Yes, every time I have the option to do so.


Why exactly do you prefer a native app whenever you have the option?


Execution speed and integration with OS features.


If I have an executable that is running on my system, I know that it will continue to run tomorrow. If I am using a web service, I don't know whether it will continue to exist. If it is running locally, I can manage my own backups, my own settings.


Huh? Do you really think that a closed app store is the only way of distributing applications?

Did you sleep through last 30 years of computing?


> Did you sleep through last 30 years of computing?

No, but mobile devices are overtaking PCs for a lot of computing activities, and on the popular mobile platforms, the only choices are a closed app store or the web.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: