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