On 1/8/06, gwtmp01 / mac.com <gwtmp01 / mac.com> wrote:

> > and the ability to make a set of software behave
> > in irratic ways by modifying it's internals via metaprogramming and
> > the like.
> >
>
> I don't buy this in the sense that I don't see how this could be
> a concern for a dynamic language and not for a static language.
> You are still writing code that has to be tested.  Whether it is
> hard to understand meta-programming or hard to understand data
> structures that simulate meta-programming.  It is still an issue
> of software correctness and I don't see how static vs. dynamic
> changes that issue in any significant way.

Honestly, I don't see this issue either.  It's just a common point the
static people tend to make.  Though it is understandable that the fact
that the behavior of your software can change quite drastically once
it's out of your hands in Ruby moreso than some other languages, this
boils down to good practice and responsibility.  If you're opening up
a class and adding / removing some code, it's your responsibility to
ensure it doesn't break things.

If you're a library maintainer (like many of us are), it's your job to
identify and test your edge cases.  I don't see this being any
different than anything else.