This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Feel the simplicity
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
What was missing was an easy way to get data out of a debugging session. By easy I mean right here, right now, that @$#^ ASN.1 blob looks wrong. It's too late to modify the code, it's too big to be decoded by hand (or it's also to late to do so ;-).
So something easy would be writing an assembly consisting of a single class with a single method to interpret the data, compiling it and, without even restarting the IDE, using the new code as an help to debug the current problem.
We're not there yet but we're getting close!
Actually with Visual Studio .NET 2005 the step are:
Create a new assembly, referencing the debugging assembly;
Implement this single method, Show, in a class implementing IDebugVisualizer;
Add an assembly-level attribute, DebuggerVisualizer, to map the debugging extension with a type;
Copy the assembly to a pre-determined location (which can be automated with the compile step);
and use it without restarting Visual Studio!
And in Smalltalk, the one step is:
Create a #printOn: method in the class(es) in question - including the ability to override system classes if they aren't descriptive enough. And obtw - you can do that while the debugger is looking at the code, and have it change right then. I love the way MS and Java folks keep finding incredibly complex ways to not quite match the power of Smalltalk.
The developer in question said he hoped he'd see this in other IDE's soon - here's where to look.