[Baypiggies] Possible talk: A Nondualist Alternative to ProxyWrapper Theory

Max Slimmer max at theslimmers.net
Mon Jun 25 17:59:45 CEST 2007


Sounds quite interesting, You have my vote.
max


  _____  

From: baypiggies-bounces at python.org [mailto:baypiggies-bounces at python.org]
On Behalf Of Ken Seehart
Sent: Saturday, June 23, 2007 5:26 AM
To: Python
Subject: [Baypiggies] Possible talk: A Nondualist Alternative to
ProxyWrapper Theory


If you read my previous email that was accidentally sent here instead of
python.org, you have some idea of what this is about.

What is new is that I did some experimenting and came up with some
interesting results.  In fact I have implemented a proof-of-concept of what
I describe below.

So let me know if you would like me to give a talk on this subject.


Overview:

Anyone who has wrapped C or C++ libraries that contain methods which use
and/or return instances of the types that are being wrapped has encountered
what I call the inheritance/proxy wrapper dilemma.

The general scenario is that we have a python extension library which we
wish to enhance by writing a python layer to add functionality and improve
syntax.  A good example is the wxPython library.  The most obvious thing to
do is to derive our classes from the extension types.  This works fine until
we have to deal with methods in the extension library that create and return
instances of the low level types.  We want to only expose instances of our
classes, not the low level objects.

At this point we do a little research and find out that we should be using
composition rather than inheritance.  So we make a proxy system and
inevitably wind up with a rather unwieldy pile of meaningless wrappers on
all of our methods.  This solution is generally considered better than
inheritance, but it creates a new set of problems.  Two obvious problems
associated with the proxy solution are the extra function call overhead of
the wrappers, and the necessity of generating piles of boilerplate code.
Also there is a tendency for the dualism between the proxy object and the
raw object to be an ongoing annoyance.  Once most of the bugs are weeded
out, the proxy system works adequately, but can't really be considered fun.



A Nondualist Alternative to Proxy Wrapper Theory:

In this talk, I will demonstrate a technique for implementing wrappers
without proxies that nevertheless have all the desirable features that we
expect from composition based solutions, and all the simplicity we had hoped
for with simple inheritance.  We eliminate dualism along with the
unnecessary run-time overhead of wrappers.  The challenge is to keep an open
mind when faced with scary seeming violations of well established object
oriented theory, and focus on the practical considerations.

Time: 45 minutes to 1 hour.  Probably not for beginner night :-)  Let me
know if you are interested.

- Ken Seehart



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/baypiggies/attachments/20070625/c1adb100/attachment.htm 


More information about the Baypiggies mailing list