@jack Hi! These are great questions. It depends on the kind of ocaps you're doing, first of all! Let me give you two versions:
- programming ocaps: an object/function has a reference to another object/function. They forward some calls but not all (eg forward only certain methods). No requirement of "shared terminology". http://mumble.net/~jar/pubs/secureos/secureos.html http://erights.org/elib/capability/ode/index.html
- certificate ocaps (eg zcap-ld): require shared understanding of terms https://w3c-ccg.github.io/zcap-ld/
@karen But the real question is, what is an object? http://www.mumble.net/~jar/articles/oo.html
MarkM's definition is closer to what you already do, because Mark's definition is closer to Alan Kay / the actor model type directions. But what "object oriented" means is very vague.
At any rate, ocaps and functional programming can go along great, see http://mumble.net/~jar/pubs/secureos/secureos.html
@deejoe I feel like that OcapPub goes into detail if you want more.
Personally, my favorite intro was reading http://mumble.net/~jar/pubs/secureos/secureos.html
@jorge_jbs I suspect you would enjoy reading http://mumble.net/~jar/pubs/secureos/secureos.html :)
@alcinnz @freakazoid @grainloom There are probably VMs, though I'd recommend looking at http://mumble.net/~jar/pubs/secureos/secureos.html which isn't quite on the VM level, more about how it applies on the language level. (Maybe you also meant Agoric's current work?)
However, as for a VM that *can be* ocap secure even wired between instances, look at the wasm-gc spec (aka WASM Managed Objects or less interestingly WASM w/ Garbage Collection)
Some of the major sources of inspiration for #Spritely:
- ActivityPub (unsurprisingly)
- the E programming language https://librsync.github.io/rdiff.html
- The "Rees thesis" showing that ocaps are actually just sane lexical scope behavior http://mumble.net/~jar/pubs/secureos/secureos.html
- tahoe-lafs https://tahoe-lafs.org/trac/tahoe-lafs
- freenet https://freenetproject.org/pages/documentation.html
- MUDs/MOOs/etc http://www.hayseed.net/MOO/
- SPKI/SDSI http://world.std.com/~cme/html/spki.html
- The Agoric Papers http://e-drexler.com/d/09/00/AgoricsPapers/agoricpapers.html https://agoric.com/references/
Chirp! is a social network. It runs on GNU social, version 2.0.1-beta0, available under the GNU Affero General Public License.
All Chirp! content and data are available under the Creative Commons Attribution 3.0 license.