On Jun 19, 2011, at 9:36 PM, Michael Edgar wrote:

> On Jun 19, 2011, at 7:20 PM, Ryan Davis wrote:
> 
>> Global variables are just that... global. There's no two ways about it.
>> 
>> Class variables are shared amongst a tree... but WHERE in the tree is defined by where it is initialized.
> 
> This does not explain why they do not auto-initialize to nil like all
> other shared variable types.

Just speculation on my part but if you had implicit-initialization, then the scope of the instance variable would be very dependent on the order in which various classes were parsed.  An errant reference to the class variable in a subclass would effectively hide the same class variable in a superclass, which is probably not what is intended.  By requiring an explicit initialization the actual scope of the class variable is explicitly established by the programer.

Gary