On 28 Nov 2008, at 16:52, David Chelimsky wrote:

On Thu, Nov 27, 2008 at 8:17 PM, Mark Wilden <[EMAIL PROTECTED]> wrote:
On Thu, Nov 27, 2008 at 5:57 PM, Brian Takita <[EMAIL PROTECTED]>
wrote:

I'm wondering if this is a discussion about taste.

I think you're right. I've been using the 'def self.foo' style in various languages for almost 20 years, so of course it feels more natural to me. These languages (except for Smalltalk) had nowhere near the metaprogramming capability nor 'objects all the way down'-ness of Ruby, and 'class << self'
is one of those things.

///ark

FWIW, the blog that led to this discussion suggested a performance
impact as well. As RSpec has gotten dinged for being slower than
alternatives, that interested me, so I did a little experiment def'ing
methods 10k times with def self.method and class << self; def method
....

def self.method ran an average of 10% faster.

Based on just that, I've all but eliminated class << self from rspec in git.

Crazy?

I think so.

I think Brian has argued eloquently that class << self leaves more readable and maintainable code behind. I don't know the RSpec code very well, but I'd be surprised if the number of class methods used would be significant enough that speeding them up will cause a noticeable increase in the performance of RSpec overall, and it might make the project harder to hack on, which would be a shame.

We have just under 4000 examples in the songkick code, taking about 7 minutes to run. If I get a chance I'll try out both forks and see if I can get you some stats.

Matt Wynne
[EMAIL PROTECTED]



_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to