Stepping back a bit, we used to call these "programs". Why are they now "hosted"? I see this with recipe databases, fitness trackers, all sorts of things that have no reason to ever leave my laptop except when my backup job runs.
What's the advantage of having the server and data on some device other than the one I'm using to interact with it?
> What's the advantage of having the server and data on some device other than the one I'm using to interact with it?
Mostly that many people have more than 1 computer these days: a small one that just about fits in the palm of their hand, and a larger one that stays in a room.
This means that most people are instantly operating within the realm of "distributed computing", and one of the fundamental approaches to that sort of thing is to allow one of the computers to both provide and accept data to/from the other.
Of course, if you have an application that will only ever be used on a single computing device, and whose data has no utility anywhere else, there's no need for the data to be able to move to/from a server. Such applications do exist, but so do many, many more where the ability to view and modify the data on different devices in different locations is desirable, even when there's just a single user involved.
My impression is that “hosted” is common parlance for programs that present as web applications, rather than typical executables. A web application is naturally capable of “leaving the laptop” so to speak, which is often one of the benefits/intents of the program design.
For fitness trackers, you're often going to get sensor files directly from a wearable device, but that device may have limited or even no interactive IO facilities, making it unsuitable for planning and analysis, which requires exporting to a more capable device. That device may very well just be your laptop, but you'd still want the ability to directly receive sensor data that your laptop can't collect because you can't hook your laptop up to a heartrate monitor and accelerometer and GPS while you're working out.
For a recipe database, if you're thinking of something like a food logger, having the food database shared by all users instead of local to each user is what allows the data to already be there the first time you ever log that same food. If it has a barcode or simple description and anyone else has ever input the nutrition data associated with it, it's already available to you without every user having to input that data individually.
I like to think of it not as "computer program with extra steps" but rather "service I can access from anywhere/anytime using any device with added privacy and control".
DISCLAIMER: I'm a backend software engineer so I'm biased.
Until and unless storing data locally is your USP, it can create issues as well for the developer
- They might have less control over the algorithms deployed on client side vs them being on the server. In case of android apps it is a hassle to get the users to upgrade the app.
- In case there is a bug in the data I can't easily see the shape of the data and debug faster.
Probably in this case developer might be ambitious and would be thinking about adding extra features to their stack which would be potentially easy if algorithms and data is under their control.
All replies focus on "service" or cloud-in-general is needed to implement sync between devices.
Why we don't have "own" sync-my-files as-service that can be connected to many apps?
I would prefer this one (in all incarnations - desktop/mobile/watch) to be just apps, but connected to something like "folder in dropbox" or "folder in gdrive" ...
My cloud my choice. Their program my data (here or in my cloud).
I know that it doesn't work in todays economy when everyone expects free in exchange for some invonvenience like ads/data-scraping by vendor.
>apps, but connected to something like "folder in dropbox" or "folder in gdrive" ...
That's the opposite of gp's question of: >no reason to ever leave my laptop [...] What's the advantage [...] data on some device other than the one I'm using to interact with it?
Gp was wondering why the data can't remain local to that device [i.e. laptop]. Proposing "choose-your-own-cloud-service" like DropBox and Google Drive contradicts that.
To make it super easy to use the same "program" on your smartphone/tablet/laptop/desktop, wherever you are. And/or to simultaneously share access to it with friends/family. Yes, you can all just point a local app at a data share instead (the old way), but many apps aren't available across all these platforms to even make this possible across iOS, OSX, Linux, Android, and Windows, so this often doesn't work for a group of more than two people.
> many apps aren't available across all these platforms to even make this possible across iOS, OSX, Linux, Android, and Windows,
Thanks to all the spying/telemetry in most of those platforms once you use your privacy protecting app on them you lose the advantage of your data being self-hosted in the first place.
What's the advantage of having the server and data on some device other than the one I'm using to interact with it?