On 4/23/06, Simon Belak <[EMAIL PROTECTED]> wrote:
> I assume we are talking about border cases where function resolution
> order is not clear.

That's one situation, but...

> Yes, it is harder, however why would you want to do
> static human analysis in a dynamic language? Fire up an interpreter
> prompt and  "experiment".

The bigger problem is that in a interpreter, it's often difficult to
duplicate the conditions that are prevalent during runtime of a large
Python application.

This is less a problem with the theory of generic functions (which is
mathematically sound, of course), than with their implementation and
use in Python.

In my experience, interactive "live" development is a lot harder in
Python environments that it is in Lisp or Smalltalk environments,
simply because many Lisp and Smalltalk applications are _designed_ to
be developed in this way: they are usually comprised of smaller
functions, with less state and fewer side effects (pre-optimization,
of course), and their standard libraries support that idiom very well.

On the other hand, Python applications tend to be a mixture of C-style
procedural libraries (mostly because of the C-runtime-flavored Python
standard library), C++ and Java-style object-oriented classes, and a
small slice of functional programming. That makes them harder to debug
than either environments based on functional languages (where a live
REPL is often sufficient for most,but not all, debugging) or C-like
environments (where static analysis is often sufficient for most, but
not all, debugging).

This isn't an anti-Python rant (although it's starting to smell like
one!). My opinion is that generic functions are harder to work with in
Python than they are in the environments from whence they originated
(due to the environment, not the functions themselves), and for that
reason, they can't be used as lightly as they are in their "native"
habitats.

And I am unanimous in that. :-)

--
Tim Lesher <[EMAIL PROTECTED]>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/turbogears
-~----------~----~----~----~------~----~------~--~---

Reply via email to