Concepts RE: Python evolution: Unease

Roman Suzi rnd at onego.ru
Wed Jan 5 09:19:38 EST 2005


On Wed, 5 Jan 2005, Paul Rubin wrote:

>Paul Rubin <http://phr.cx@NOSPAM.invalid> writes:
>> There is nothing in Wikipedia about [Generic programming].
>
>Oops: http://en.wikipedia.org/wiki/Generic_programming
>
>This helps.  But I don't see how it's different from what used to
>be called polymorphism.

I already posted these links. They seem to give more fundamental
definitions than wikipedia:

'''
 1. http://www.cs.rpi.edu/~musser/gp/

 2. "A Formalization of Concepts for Generic Programming"
(google could find PDF of that). If I am correct, this one:
http://www.osl.iu.edu/publications/pubs/2004/willcock04:_formal_concep_gener_progr.pdf

(it is safe to skip till example on Fig.1 to grasp the idea behind
a concept. Relations between concepts are also very logical and
remind of inheritance, association and aggregation)

 3. "The Boost Graph Library" by Jeremy Siek, et al with A.Stepanov's
foreword is a good way to see GP != STL.
'''

As for polymorphism, yes, polymorphism. But any decent language has some sort
of polymorphism today. The essense of concepts is that they provide
formalities for (call them) contracts, interfaces, etc. Concepts from GP
gather all these together and call it a concept: a family of similar types.

Python already uses concepts implicitly, by convention. And we know them well:
file-like objects, sequences, maps, sets, queues, arrays, etc.
My "marketing" of GP is directed to formalise on concepts instead of
partial cases (design-by-contract, interfaces etc).

Thus, concepts control polymorphism not only from liberation side, but
from constraint side too. Right now concepts in Python are reused
here and there without explicit mentioning. Concepts could help
make code even more reusable.


Sincerely yours, Roman Suzi
-- 
rnd at onego.ru =\= My AI powered by GNU/Linux RedHat 7.3



More information about the Python-list mailing list