Chat is probably one of the only functionalities that are still better served by an ad-hoc app
If you need notifications, just use a native app (or even a web one wrapped in a native app)
Anyway, most of these "features" are used because they are already there, remove them from the base install of the browser, distribute them as a plugin and make the devs consider that the feature could not be present and they will stop nagging the users begging for their attention
Any website I visit from mobile wants the permission to notify me, 99% of them don't if I visit from desktop
Let's say you're using some random website and want to talk to their sales or support team. How well do you think "download this app to chat with us" is going to go over?
Amazon and Alibaba are pure consumer plays with a mass audience. They deliberately hide the contact forms to force you through self-service UIs.
If you try the same thing with a B2B or other high-touch service, it's not going to end well for you.
Personally I get a terrific amount of value from interacting with my B2B customers through chats, video calls, and screenshares. The customers love it.
> Chat is probably one of the only functionalities that are still better served by an ad-hoc app
Yes, actually, IRC works better for chat, I think. Actually, it is probably true of some other stuff too, such as many kind of multiplayer games; you could use a telnet (or SSH) session.
This is not just about chat. Ever tried to build a cross-device synchronization without being able to push updates to clients? It sucks.
The user doesn't know that another user changed something until he opens the app and then the app has to fetch and integrate all updates since the last interaction with the app and the user has to wait until his app is ready.
Web apps are better because they are as much device-independent as apps can get nowadays.
Service Workers are the background service for web apps, but since users don't want those services to drain the battery unnecessarily, you have to use the Push API to trigger those background jobs.
So yes, if the app is the active app, you can do polling, WebSockets and all the like and have no problem. Background services are (rightfully) limited for web apps, but not even providing the Push API kills a lot of valid use cases. Firefox and Chrome both provide that API.
What do you mean by 'just Firefox'? Firefox, Chrome, Edge, Safari all support Progressive Web Apps in general.
Older browsers, on the other hand, might not be able to use offline features, but at least you can use the app in the traditional always-on mode.
For your comparison with Java: It is true, Java is very device-independent, but the deployment procedures are much more complicated than simply entering a URL.
If you need notifications, just use a native app (or even a web one wrapped in a native app)
Anyway, most of these "features" are used because they are already there, remove them from the base install of the browser, distribute them as a plugin and make the devs consider that the feature could not be present and they will stop nagging the users begging for their attention
Any website I visit from mobile wants the permission to notify me, 99% of them don't if I visit from desktop
Why is that?
I guess we all know the answer