Hi --

On Fri, 23 Dec 2005, Chad Perrin wrote:

> On Fri, Dec 23, 2005 at 07:36:48AM +0900, why the lucky stiff wrote:
>> Yukihiro Matsumoto wrote:
>>> "open class" is so strong (often too strong), we can break things
>>> easily.  In other word, Ruby trust you to give you sharp knives, where
>>> Python don't.  From the Python point of view, it's wrong, I guess.
>>>
>
> I understood that 100%, and agree with it similarly.  Keep in mind, I'm
> mostly coming to Ruby from the direction of Perl -- the Swiss Army
> Chainsaw to some -- and have no problem with being handed a sharp tool
> and being told to be careful with it.
>
> Perhaps more imporantly than how this relates to my agreement, though,
> is the fact that I think you have hit on a fundamental point of
> divergence between the Python community and most of the rest of the
> "very powerful and succinct scripting language" communities out there
> (particularly Lisp, Perl, and Ruby come to mind).  Python is,
> essentially, to this family of languages as Pascal is to the family of
> languages that includes stuff like C++, Objective C, and so on.
>
> Some languages are designed primarily to empower the programmer,
> trusting that the programmer will be smart enough to avoid doing
> something suicidal with that power.  Python strikes me, on reflection,
> as a language designed primarily to protect the programmer, trusting
> that the programmer will be smart enough to use it effectively despite
> limitations.

I've had for a long time a kind of semi-formulated idea about all this
in my head, and have never expressed it clearly.  Let me try, and
probably fail.

In the Perl world, there was ("was" as in, I'm not in that world any
more) a perennial sense that all this "shooting in the foot" stuff was
a kind of test of personal resistance and fortitude.  It felt
sometimes like the power of the language was mainly serving to allow
people to demonstrate how careful and wise they were.  I don't say
that the best Perl programmers fell into this pattern, but in a wider
sense it definitely seemed that knowing about the "rope", and
maintaining a healthy distance from it, was a kind of badge of honor.

In Ruby, I see it differently.  This is where I start having trouble
expressing it.  It's a kind of wish that the gravitational forces be
aligned differently: instead of showing one's strength by pulling
away from the vortex, perhaps the powerful things in the language
could be *used* in productive ways, so that one falls *toward* them,
but without danger.

I'm not sure what this means, in practical terms.


David

-- 
David A. Black
dblack / wobblini.net

"Ruby for Rails", from Manning Publications, coming April 2006!
http://www.manning.com/books/black