I find such things as email, maps and streaming services to be proper use cases for native applications, because they either require non-standard connectivity / caching implementations, or hardware features which are not equally available on all browser-connected devices. JavaScript and CSS should be used to enhance hypertext document browsing experience, not to replace OS-level applications where they are needed.