On Jun 19, 2011, at 7:20 PM, Ryan Davis wrote:

> Global variables are just that... global. There's no two ways about =
it.
>=20
> 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.

> And for the record, I think that your assertion that class variables =
"are almost always wrong" is false. Like all things in software design, =
they can be used poorly or they can be used well. When they're used =
well, they're perfect for the job. When they're not, they're horrible. I =
use class variables all the time to good effect (some of these are from =
Eric):

I think you support my point - for an entire variable class type, I see
about 20 projects there, some of which you've admittedly not written
yourself. They certainly have uses; I use them in Laser for dynamically
loaded warning passes, and I see many of the projects you link use them
for plugins. "Almost always wrong" isn't countered by fewer than 2 dozen
projects that use them once or twice.

Michael Edgar
adgar / carboni.ca
http://carboni.ca/=