>
> C++'s and Java's approaches are vitiated by an unspoken assumption that
> the library's designer is some kind of demigod, while the writer of code
> that uses the library is presumably still struggling with the challenge
> of opposable thumbs.  

That might be  your point of view. To me, the library designer is the
one that has done the homework and should know better how to simplify
things for others not a God. No one uses a high level library if
implementing the low-level your self is easier. Libraries provide
functionality that allow the application programmer to concentrate in
what he is being paid for, making the application. An application
programmer will have to define what the correct interface for the
application is (for example, what UI to provide). There will be users
that will say, I wish this application had a way of doing this, but
unless they were technically savy and wanted to spend the necessary
time to understand how the application works, they would not write the
feature themselves; they will request that feature to the programmer.



> In real life, the skills of the two people in
> question are likely to be much closer, and since designing libraries for
> use in all kinds of applications is a really hard task, it's likelier
> than the library designer will make an error in designing his or her
> library, rather than the application programmer in using that library.

Those are called defects or "bugs". When I find a bug in a library or
an application, I submit a bug report. I might have to work around it
for a little bit, but I don't just work around it and call it goods.
Library designers are normal programmers that work under a set of
requirements like any other programmer (application programmers
included), but when I find a bug in an application, I report it and
try to work around it until it gets fixed; I don't hack the
application or re-write my own just because a found a bug.

>
> Purely-advisory encapsulation approaches, like Python's, even the odds.
> Actually, I'd argue that even double-leading-underscores are overkill
> more often than not (and single-leading-underscores the compromise that
> is generally prefereable).

You see it as an intelligence challenge, where I see it as making
things easier for everybody.

Thanks,

- Isaac.


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to