[squeak-dev] Object>>printOn: refined.
Das.Linux at gmx.de
Tue Jun 2 13:05:41 UTC 2020
> On 02.06.2020, at 14:49, Marcel Taeumel <marcel.taeumel at hpi.de> wrote:
> > Teaching user to think in these numbers is, IMHO, not the right direction.
> It is important to teach users about object identity somehow.
Maybe, but if so, not by telling people that/how/.. objects map to numbers :)
>> Am 02.06.2020 14:38:46 schrieb Tobias Pape <das.linux at gmx.de>:
>> > On 02.06.2020, at 14:10, Trygve Reenskaug 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.
>> > aStream
>> > 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.
>> Best regards
More information about the Squeak-dev