5 ms·
The term "capability” is much older than Pony, and the concept was proposed in the 60s. We would have loved to use a different word, but there are not enough di
by decklebench 11y ago
The term "capability” is much older than Pony, and the concept was proposed in the 60s. We would have loved to use a different word, but there are not enough different recognisable words in the English language.
We use capabilities in Pony to statically avoid data races - not for security. But we believe that Pony's capabilities can also be developed further to support security - would be great to try and program Sandstorm’s security with them.
- kentonv 11y ago> The term "capability” is much older than Pony, and the concept was proposed in the 60s. Right, capability-based security (my definition) originated in the 60s and has been in continual use ever since. Pony's definition is new, AFAIK (and according to the documentation). > We would have loved to use a different word, but there are not enough different recognisable words in the English language. I think "type qualifiers" is the correct term. The Pony docs already describe capabilities as being similar to C++'s "const" and "volatile" type qualifiers, and this term will help people understand that the concept is similar (but more advanced). The Pony docs spend a whole paragraph explaining that its capabilities are not the same thing as any other "capabilities" I may have heard of, e.g. "You may have heard of capabilities somewhere else, but these are not the same thing." The fact that you need this paragraph suggests that you've heard this objection a number of times, which should be demonstration enough that you really ought to choose a different term. People don't usually need disclaimers like this. English is a language that has entirely too many words -- there are plenty available. Or, consider making one up. :) > But we believe that Pony's capabilities can also be developed further to support security Yes, it's very likely that your "capabilities" would compose well with object capabilities in order to effect security. But that's just all the more reason they shouldn't use the same word, since it will be incredibly confusing to anyone who is trying to use both.
- 0cachecoherency 11y agoThe "type qualifiers" you refer to are an extension of the capabilities-secure nature of Pony. They are themselves also a form of capabilities, specifically because the underlying language is itself capabilities-secure. You may be interested in the type system paper that covers this: http://ponylang.org/papers/fast-cheap.pdf http://ponylang.org/papers/fast-cheap.pdf
- kentonv 11y agoOK, then I'm very confused by this documentation: http://tutorial.ponylang.org/capabilities/introduction/ http://tutorial.ponylang.org/capabilities/introduction/ It seems to state that the type qualifiers are the capabilities, and explicitly claims no existing language support capabilities. If this is just an issue of misleading documentation then I apologize for raising a false alarm, though the documentation should be corrected. :)
- 0cachecoherency 11y agoI think you're right, the documentation should DEFINITELY be corrected! No worries on a false alarm, as I am always eager to discuss capabilities security, in any form :)