Guido van Rossum wrote:
> 1. Naming and general ideas. Should we call these Abilities or
> Interfaces?

I'll try to make an argument for "Interface" over "Ability" using 
examples from Zope.

It seems to me that not all interfaces coincide with something the 
object can _do_.  Some speak to what can be done _to_ an object:

class IAttributeAnnotatable(IAnnotatable):
     """Marker indicating that annotations can be stored on an attribute.

     This is a marker interface giving permission for an `IAnnotations`
     adapter to store data in an attribute named `__annotations__`.

     """

Some give describe how the object will _act_: Persistent.  Some are 
application-level statements about how what is allowed to be _done_with_ 
the object: ISharable (the user can "share" this object with other users 
in various ways; read, write, etc.).

These (especially the marker interfaces) don't seem to be statements 
about what the objects can do (abilities), but about other 
characteristics, therefore a more general name like "interface" seems 
appropriate.
--
Benji York
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to