On 10.11.2011, at 23:04, Steve Thomas wrote:
So the argument I have heard as to why Etoys does not have a single Step Debugging like Scratch seem to go along the lines of "If we step one script, the whole world waits".
I have two responses to this:
- So?
- Should we let the search for an elegant solution (that a few developers will see and appreciate) prevent us from providing a tool that can positively impact many children?
So on "So?":
So what if the whole world stops?
You couldn't even press the "next step" button because the world would be literally stopped. And you wouldn't see what's going on since the world would not be repainted. That's what "stopping the world" means.
Yes, I know and can think of some cases where this will impact the ability to debug certain issues, but my guess is these are a small minority of cases and I do not see any negative consequences (other than the single step debugging is not ideal in these few cases, but it would still be better than no single step debugger).
A solution versus an elegant solution:
Another way to solve this problem (which I will assume others have thought of, so I am probably missing something) is to do something similar to what Bert did in his Squeakland presentation where you "roll your own tiles" and place them in special holders (like "do together" or "do one at a time"). When you click on "debug" or some other similar script icon, a new "special script" is instantiated that has a copy of each tile, but it operates one "step" at a time, doing the step during its cycle. This would allow the whole world to continue to run and provide single step execution of tiles (or copies of those tiles inside a special scriptor, that runs one tile at a time.).
Yes, that is a solution we discussed, and think is optimal. The script would be "interpreted", each message "performed" individually, rather than executed as a compiled method.
It's just ASMOP ;)
- Bert -