I'm reading through Why's (poignant) Guide to Ruby, and in chapter 5, when he's discussing the ability to analyze class structure by using the :superclass
method, he has this snippet of irb
interaction:
irb> Class.superclass
=> Module
irb> Kernel.class
=> Module
irb> Module.superclass
=> Object
irb> Object.superclass
=> nil
I attempted to recreate this in my irb
and got the following output:
irb> Class.superclass
=> Module
irb> Kernel.class
=> Module
irb> Module.superclass
=> Object
irb> Object.superclass
=> BasicObject
irb> BasicObject.superclass
=> nil
I know that many languages now follow this paradigm of having virtually everything inherit from a single, parent object.
My question is, when and why did Ruby introduce a BasicObject
class, which extends to Object
? Was the Object
class not good enough for you?! Sheesh!