From: paul@... (Paul J. Sanchez) Date: 2002-09-07T09:20:41+09:00 Subject: Re: Larry Wall's comments on Ruby >>>>> "DM" == Drew Mills writes: >> -----Original Message----- From: Andrew Hunt >> [mailto:andy@toolshed.com] Just learning a new concept doesn't >> count as surprising, but being led astray by inconsistent >> behavior does. >> DM> Learning a new concept that does not fit with your worldview DM> does count as surprising. And it will continue to be DM> surprising until you change your worldview. And beginner's DM> are still taught a procedural worldview. DM> You just can't say that Ruby isn't surprising. If someone DM> come's to Ruby, really likes the OO-everwhere aspect, they DM> will often say, "Wow". And guess what, they were just DM> surprised. Otherwise, they would say, "Big Deal, I've been DM> doing that in language X for the last 4 years at school. Of DM> course everthing's an object." But they don't. Because DM> that's not what they're taught. DM> And if that same procedural person has to re-organize his DM> worldview to do everything in an OO-everwhere fashion, that DM> person will be surprised over and over until he successfully DM> changes his worldview. DM> Let's be clear: I'm not looking for procedural everywhere, I'm DM> OO all the way. But Larry hit the nail on the head that DM> beginners will be surprised. It might be a nice surprise! DM> But it will be a surprise. His choice to not surprise them DM> with OO can arguably be judged short-sighted. But his DM> statement about their surprise is spot-on. DM> Another way of saying it, "Since our beginners are taught DM> inconsistencies, they may well be suprised by consistency." Depends on who "our" beginners are. If they're beginners to Ruby, but old hands at programming, you're probably correct. If they're complete newbies, it's not at all clear. I've heard (anecdotally) that programming neophytes find OO much more natural and intuitive than procedural programming - it agrees with their world view. Once we've put all of the effort of bending our brains to think procedurally, it seems natural to us - we forget the pain and angst of our early days, and wonder why it's so hard for newbies to see the "obvious" solutions we've trained ourselves to recognize. But if all the patterns were so obvious, we wouldn't need all of the pattern books that are so popular these days. I remember glancing through a C++ patterns book after being an Objective-C programmer for a while, and snickering. Perhaps one metric of a good language is how few patterns are needed to use it productively. --paul