3 ms·
That'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
by cabalamat 17y ago
That'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.