[squeak-dev] Object>>printOn: refined.
Das.Linux at gmx.de
Tue Jun 2 12:38:35 UTC 2020
> On 02.06.2020, at 14:10, Trygve Reenskaug <trygver at ifi.uio.no> wrote:
> I find it frustrating to open 3 inspectors on different objects, all of them titled 'aString' (or whatever),
> IMO, it is much better to open them on the 3 objects:  aString,  a String, [4567 a String.
> The numbers in square brackets stand for the objects oop, actually its identityHash. They can be a 7-digit numbers; much too long for my short-time memory to hold many of them. I therefore truncate the number to 4 digits, accepting that I may, in rare cases, get 2 objects with the same identifier.
> I'm running 'Squeak5.3'.
> Object>>printOn: aStream
> "Append to the argument, aStream, a sequence of characters that identifies the receiver."
> " The previous version identified the class, not the instance "
> " This new version identifies the instance with its oop. "
> " I arbitrarily truncate the oop to 4 digits to simplify reading. "
> | title |
> title := self class name.
> nextPutAll: '[' , (self asOop printString truncateTo: 4) , ']' ;
> nextPutAll: (title first isVowel ifTrue: ['an '] ifFalse: ['a ']);
> nextPutAll: title
I'd rather not increase any complexity in Object.
Besides, both oop and identityHash are too low-level for the average work-flow.
Teaching user to think in these numbers is, IMHO, not the right direction.
More information about the Squeak-dev