Craftsman #50: Ruby 4

Posted by Uncle Bob Thu, 14 Jun 2007 23:30:12 GMT

Here is my latest Craftsman article. Aphonse, Jerry, Jasmine, and the crew learn a little bit about Ruby, and fight about it’s benefits and dangers.

Comments

Leave a response

  1. Avatar
    Aaron 5 days later:

    Pretty cool.

    But there is no doubt, I think, it is a trade between early and late binding. Just as what OO does for polymiorphism couple of decades ago, with it method invoking can’t take effect util runtime rather than compile time. Further more, concrete class can be isolated without the knowing of the calling class.

    Now, it seems Ruby goes even further, it makes class invoking runtime available. It is still an idea of polymiorphism but somehow in a much higher level.

    I am not sure if my understanding is right, cause I am not familiar with Ruby very much. But it just let me think of that.

  2. Avatar
    Luis Sergio Oliveira 14 days later:

    I’m now learning Common Lisp and this whole excitement around Ruby just seams pointless…

    I just wonder – could Jasmine remember her good old days back in college or university where some guys told her that if she wasn’t satisfied with the languages’ OOP support she could implement her own version via MOP or modify it easily with some simple macros?

    Nevertheless, I’m very happy there is one more craftsman column to have some quality reading time. You’re writings are always inspiring :-)

    PS: I understand that probably Rails and the new libraries (e.g. rspec) out of the Ruby community are the main benefit of current importance being given to it…

  3. Avatar
    Cliff 2 months later:

    Bob,

    What about Groovy??!! I’ve been following your Craftsmen series over the past year or so and I think that Alphonse Jerry and Jasmine should have a bout with Groovy instead of Ruby. Or maybe that would make an interesting upcoming article to compare/contrast the two languages? Keep up the good work! Love your articles! Holla-back!

    Cliff

  4. Avatar
    Brian Slesinsky 12 months later:

    If you rename createCpp or createJava, it will break just the same. So that’s an implicit interface. The question isn’t whether you implement an interface or not, but whether you implement a visible or invisible interface.

    (I’m also somewhat confused about why these articles are written using story-obfuscation.)

Comments