Hey folks. I’ve been meaning to chime in for a while now, but I’ve been up to my ears in alligators (still am, but whatever ) I think DFINITY is a really interesting project. IMO they get a lot of things right (which might be my biased way of saying there’s a lot of similarities to Holo hosting ) I don’t know enough about how DFINITY works yet, but from what I see, they start from some really good first principles.
I think DFINITY will appeal to people who are used to the traditional cloud but want to enjoy easy elastic scaling, avoid vendor (and platform) lock-in, centralised failure points, hardening their system, etc. Their design (in particular their Motoko programming language) makes it easy to reason about program state without having to think about programming for distributed systems.
Ease of deployment, scaling, security, and management are worth paying extra for. Amazon knows this too – people pay big money for their managed services.
Not having actually programmed an app for DFINITY, I don’t know what it’s like. But I suspect that it’ll force us to up our game in terms of developer friendliness. I don’t see it as a very big engineering challenge to match their core developer-friendliness selling point, orthogonal persistence (tl;dr: no messing around with databases; just write values to memory variables and the system takes care of storage). I also have misgivings about orthogonal persistence – it’s a pretty heavy abstraction, and you need to have a good idea what you’re doing in order to avoid memory bloat.
Lest you think I’m a DFINITY fanboi, there are still things that make me love Holochain more:
- With DFINITY, your app always lives on the cloud. There’s no off-ramp to self-hosted apps, like there is with Holo → Holochain. This is something I’m really passionate about, both from a usability perspective (self-hosted apps means you never have to suffer through an ISP or cloud outage) and from a philosophical perspective (your data is yours). Oh, and an ecological perspective (why not take full advantage of the supercomputer on your desk or in your pocket rather than leaning on a datacentre-hosted cloud – even a distributed one). And the fact that every self-hosted user means less cloud costs for the app dev is pretty nice too.
- Holochain’s agent-centric paradigm means that it feels natural to write user-oriented apps (which are most of them these days). And, just as with DFINITY, you don’t have to mess about with securing password databases and guarding against all sorts of attacks like you did with cloud development.
- There’s something I like about the cloud of the future running on cheap spare machinery in people’s basements rather than state-of-the-art machines in a datacentre somewhere. Someday I plan to heat my greenhouse with HoloPorts in the winter
- Holochain is privacy-first, with the option to store private stuff on your own device (two caveats: as long as the app dev isn’t evil, and as long as it isn’t Holo-hosted). DFINITY does let you keep user data private, but it costs more. (Some day I’d like to see that offered as a Holo hosting add-on though.)
- FWIU with a DFINITY app, the state (user data) is replicated across all instances of the app. So you’ve got horizontal scaling in terms of being able to serve user requests, but that full replication is pretty space-inefficient. With Holochain’s sharded DHT, the data storage burden is spread out thinly across a lot of users. You sacrifice absolutely no write performance this way (because each user can write data to their own instance as fast as they like), although you do sacrifice read performance. IMO that’s a small price to pay for the ecological/cost savings.