On 14.05.2009, at 12:55, Steve Wirts wrote:
Hi Folks,
Would it be inappropriate to request that an effort be made at some point to try to provide accessors for all instance/class instance variables, and try to get rid of inappropriate direct variable accessing where possible?
The "chasing variables" function is handy but seems more cumbersome than just putting a halt in a setter.
I know this would be a lot of work but maybe it could be automated.
Just tell me to shut up and go away if I'm being a nuisance.
In general I am a fan of self-style way of not destinguishing between sends and instvar access. (like NewSpeak, Gilad has some nice blog-posts on why you want message sends for everything). But one thing can be quite problematic: performance. In Morphic, some years ago somebody did this refactoring. *all* accesses where replaced by messages sends. The problem: performance. Especially the path when accessing morphic properties added *lots* of message sends, even for the case when it was supposed to fail fast (e.g. morph-extension nil). Just removing those got us a lot of performance back when comparing 3.9 with 3.8 (these changes where later added to the OLPC image, too). Of course, this can be optimized easily in a JITed environment, but just doing it for everything in Pharo now would not be wise. In addition, one would need to think about syntax.... implicit self, yes or no? The question about debugging of course can be solved, too, by making variables real objects that one can, for example, put a break-point on... Marcus -- Marcus Denker - http://marcusdenker.de PLEIAD Lab - Computer Science Department (DCC) - University of Chile