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