Jon Hylands Jon@huv.com wrote:
On Mon, 28 Aug 2000 19:14:48, Mats Nygren nygren@sics.se wrote:
I think there is a distinction to be made:
- some proxies like ObjectOut becomes their real objects. They inherit ProtoObject directly and will turn into their real object when debugged. (Probably before that).
- others like a decorator will remain a distinct object and never become what they proxy. These would be very difficult to debug unless they handled the debugger messages themselves so should inherit DebuggableProtoObject.
My feeling is that proxies should be as transparent as much as they can be. If you're debugging proxies, and it shouldn't happen very often, you can afford to do a little nastiness.
I'm not sure that I agree. The issue isn't whether you're debugging the proxy, it's whether you're dealing with a proxy or the actual thing. I don't like the idea of the system lying to me about what I'm seeing. I'd suggest something like a split view that shows both the proxy and all it's internal state, as well as the state of the object wrapped by the proxy. The System-Prototypes changeset posted recently creates Inspectors on PrototypeObjects that work in a way similar to this. I guess there's no reason that it couldn't be configurable, though, so if you want proxies to be invisible, be my guest.
I do like the idea of DebuggableProtoObject, as I was forced to add the requisite methods to a subclass of ProtoObject that I created for a purpose where it wasn't just a transparent proxy.
Joshua
You don't want to have to go through hoops to debug your application, which is hopefully where most of the bugs are.
Later, Jon
Jon Hylands Jon@huv.com http://www.huv.com/jon
Project: Micro Seeker (Micro Autonomous Underwater Vehicle) http://www.huv.com
schwa@cc.gatech.edu wrote:
My feeling is that proxies should be as transparent as much as they can be. If you're debugging proxies, and it shouldn't happen very often, you can afford to do a little nastiness.
I'm not sure that I agree. The issue isn't whether you're debugging the proxy, it's whether you're dealing with a proxy or the actual thing. I don't like the idea of the system lying to me about what I'm seeing.
Yes and no ... I'd say that with transparant proxies, you kind of expect the system to be lying to you.
I'd suggest something like a split view that shows both the proxy and all it's internal state, as well as the state of the object wrapped by the proxy. The System-Prototypes changeset posted recently creates
This seems to be the best of both worlds.
-- "You are more than the sum Johan Fabry - Johan.Fabry@vub.ac.be of what you consume. Vrije Universiteit Brussel Desire is not an occupation." Programming Technology Lab, Room 10F709 -- KMFDM Pleinlaan 2, 1050 Brussels, Belgium
squeak-dev@lists.squeakfoundation.org