Dr. Martin Kleppmann has an extensive comparison of different application architectures called “Local-First Software”. He makes some important points about the flaws of web applications with respect to data ownership that are near and dear to my heart:
In the pursuit of better tools we moved many applications to the cloud. Cloud software is in many regards superior to “old-fashioned” software: it offers collaborative, always-up-to-date applications, accessible from anywhere in the world. We no longer worry about what software version we are running, or what machine a file lives on.
However, in the cloud, ownership of data is vested in the servers, not the users, and so we became borrowers of our own data. The documents created in cloud apps are destined to disappear when the creators of those services cease to maintain them. Cloud services defy long-term preservation. No Wayback Machine can restore a sunsetted web application. The Internet Archive cannot preserve your Google Docs.
He also neatly summarizes the advantages of web applications for collaboration:
We experimented with a number of mechanisms for sharing documents with other users, and found that a URL model, inspired by the web, makes the most sense to users and developers. URLs can be copied and pasted, and shared via communication channels such as email or chat. Access permissions for documents beyond secret URLs remain an open research question.
The differentiator between web and native applications is becoming collaboration versus data ownership. I prefer native apps, I still think they have performance and usability advantages, but those gaps are shrinking. The next most important advantage is that native apps provide full control over your data. But you lose the ease of collaboration that comes with web applications. The best way to share is a URL; if you can’t share a URL to collaborate in your application, then it will be replaced by an application where you can.