• 0 Posts
  • 3 Comments
Joined 1 year ago
cake
Cake day: August 7th, 2023

help-circle
  • Exactly - interoperability is key, and is intentionally removed from many software platforms once they become big enough. Cory Doctorow writes about this here.

    Companies have a funny relationship with interop. When companies are small and trying to build up their customer-base, they love interop, love the idea of selling ink for someone else’s printer or a way to read your wait­ing messages on someone else’s social media giant. Facebook once had a whole suite of interoperability tools to make it easy to plug Facebook into other services, but it has whittled these away over the years and today it routinely threatens and even sues rivals that try to interoperate with it.

    A trend that I actually like is more software supporting using a user’s own iCloud or Google Drive as a data store rather than using the company’s own servers. The step that needs to take place is a way to use many storage providers simultaneously (including home server) with syncing behavior abstracted away. The software would essentially be a database cluster with a variety of heterogeneous nodes supported. A library that abstracts this multi-host pattern for use in both Android and iOS apps would go a long way. There is still the problem of the controller orchestrating uploads and syncs, though, which for most users would be their phone.

    Upspin is new to me but looks like it’s right up this alley. Making the whole thing work for non-technical users will be one of the hard parts I imagine.

    Edit: I also just saw, there is now Veilid.



  • This article, as much as I agree with it, conflates cloud hosting and remote-only software design. Cloud hosting really is a prison, but mostly for developers that are lured by its convenience and then become dependent on its abstractions. What we experience today in most mainstream software isn’t necessarily coupled to cloud hosting, but is instead a conscious product design choice and business strategy to deny users power and control of their data. In short, cloud providers like AWS, Azure, and GCP are doing to software companies what those companies are doing to us. There is a way to use shared data centers without this kind of software design philosophy. As mobile continues to dominate, the solution we need likely involves remote servers but with a model that treats them with skepticism and caution, allowing data portability and redundancy across a variety of vendors. I should be able to attach a few hosting services to a software experience I use and transfer my data between them easily. The idea that local-first software is “freed from worrying about backends, servers, and [hosting costs]” is misleading, since my local device has to become the client and/or server if there is any connectivity happening over the internet. Wresting control of our data from the dominant software companies will require creating experiences that are not only different, but better, and doing that with a mobile phone passing between cell towers functioning as the server is a tall order. We have grown to expect more than intermittent connectivity with conflict resolution. Nonetheless, we absolutely should not accept the current remote-only software paradigm, but instead need to devise better ways to abstract how remote hosts are inhabited and create a simple multi-host option that is intuitive for consumers.