On 06/07/2014 5:09 PM, Matt Oliveri wrote:
> I was never trying to say that Java is a good object-capability
> language. Just that it can technically be used as one, and that when
> doing so, downcast should not be considered rights amplification.

An idiom is or is not a rights amplification, by definition. Whether 
it's a rights amplification we are willing to allow is a separate question.

Reflection is also a rights amplification. The idea that two rights 
amplification somehow cancel each other out to form a language including 
both but without rights amplification, doesn't seem sensible. Rather, we 
are simply accepting two rights amplifications into our language in 
order to achieve some other desirable property. That doesn't exclude 
them from the class of rights amplifications.

> Yes I agree. But a type system shouldn't be considered defective just
> because it doesn't enforce your favorite kind of property.

It's defective as a *completely secure language* because it doesn't 
curtail all rights amplification. No other value judgements on 
suitability for any other purposes were made.

> Java's type system guarantees that you can call a method if it belongs
> to the type. It doesn't guarantee that you can't call a method if it
> doesn't belong to a type.

Sure it does, it just provides a way to bypass the type system's 
guarantees. Your argument implies that Haskell is not a lazy language 
simply because it provides unsafePerformIO.

Sandro

_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to