I had the great pleasure of meeting Jacob Rabinow once. He rivals Edison in the number of useful inventions that he has made. He has also made a comfortable living from his inventions. He told me that a significant number of his inventions resulted in mapping other prior inventions across concept bridges (my term not his; I don’t recall his term) and making minor adjustments. A significant example was the magnetic clutch upon which he held the invention. A previous invention was an electric clutch which used electrostatic attraction to bring two clutch plates together. Rabinow knew how to map electrostatic attraction into magnetic attraction and he quickly produced the patent for the magnetic clutch. For about two decades every magnetic tape unit had two magnetic clutches, one for each real. The electrostatic clutch saw little use.
Here is a bridge between public key crypto and capabilities.
Keykos objects were conceived as separate machines, almost. There were to be no allowed connections except as explicitly provided by capabilities which we called keys. We attempted to make miscellaneous keys appear as if they might really be implemented in user code where they were indeed implemented by privileged kernel code. As a result the kernel implemented objects were later conceptually unified under the emerging object paradigm.
The Actors papers were brought to my attention after the main Keykos architecture was finished. The main difference was that domains could be invoked multiple times. I now think of Actors as the unifying scheme except that Actors ignores resource issues whereas Keykos does not.
Inheritance is a worse problem. I think that
Some notes on language design and its relevance to Capability discipline