4 ms·
I find having a live interactive debugger on the actual data makes it far easier to 'get the state of the system' rather than some text files which have very li
by spooneybarger 17y ago
I find having a live interactive debugger on the actual data makes it far easier to 'get the state of the system' rather than some text files which have very little to do with the state of the system and usually just represent code whereas a 'system' is a combination of code and data.
- cabalamat 17y agoThat's a very valid point -- actually being able to see the state of the data it very important in knowing what's going on. As Brooks and Raymond put it: "Show me your code and conceal your data structures, and I shall continue to be mystified. Show me your data structures, and I won't usually need your code; it'll be obvious." But can you do this in Smalltalk? OK, you have inspectors that show you a representation of your data, but the representation is incomplete. I haven't used Smalltalk in years, so I'll gave an example in Python to show what I mean: >>> a = [1,2] >>> b=[a,a] >>> c=[[1,2],[1,2]] >>> b [[1, 2], [1, 2]] >>> c [[1, 2], [1, 2]] >>> b[0][0]='x' >>> b [['x', 2], ['x', 2]] >>> c[0][0]='x' >>> c [['x', 2], [1, 2]] (b) and (c) initiallly have the same representation, but they behave differently. I don't like this, so I'm creating a language where the text representation of an object defines how it behaves: if two objects have the sdame representation, their internal structure is the same, and their behaviour will (with one exception) be the same. This representation format is used as a serialisation format, and is also used to write literals in the language. This means that it's possible to display precisely the value of any object, including all the sub-objects it contains.
- spooneybarger 17y agoYes you can because 'a' is an object and your array [1,2] is a different object. They have the same value but a different identity. You can use a smalltalk inspector to see both value and identity.