On Aug 14, 2006, at 12:53 PM, James Edward Gray II wrote:

> I thought Kernel was for methods like puts() that we wanted to have  
> globally available but that weren't necessarily inherent to  
> Object.  Clearly my understanding is flawed, so would someone  
> please explain how it is decided if a method belongs in Object or  
> Kernel?

Everything (almost) belongs in Kernel <g>

% irb
irb(main):001:0> obj = Object.new
=> #<Object:0x35477c>
irb(main):002:0> obj.methods.map { |x| obj.method(x).inspect }.grep(/ 
Kernel/).size
=> 40
irb(main):003:0> obj.methods.size
=> 40

I believe the purpose of BasicObject in 1.9 is to be able to say

class O < BasicObject # I want BlankSlate without all the extra work  
of undef_method
end

I don't know anything about matz. cracking under the pressure <g>