Hi Stef, I am still thinking about this point, but I do not have an intelligent answer yet. I just wanted to say that I did not forget it :). Cheers, Doru
On Feb 26, 2017, at 11:16 PM, stepharong <stepharong@free.fr> wrote:
I hate my mail client.... Apparently I wrote email to explain what I finally understood and it never sent it nor archive it :( So I will try to summarize it and take some time tomorrow to reexplain it.
Now I understand why I got confused
printit is currently a function from objects -> literals (this handles the self-evaluating objects) + (and this is unfortunate non literals such as string objects by opposition to literal strings)
It means that there ares case where we can have object -> a string object (and not a literal) in that case we use the string object as a mediocre "reference" to the object.
If we would have printgraphics we would have objects -> graphics and unknow objects would be represented by a little blue square and clicking on it would bring and object representation (inspectors or whatever)
Now how to we improve the situation. I have the impression that it would be good to have instead of printOn: which is used to do too many things.
- first printOn: should not be used for list/combo or any widgets (this will avoid some friends I know to get interfaces with ' inside their comboxchoice) but to use displayString
- second I would introduce asLiteralOn: which garantee that you cannot escape
this way printIt will only prints strings as literal strings and the contract is clear.
objects -> literals (this handles the self-evaluating objects)
1 >>> 1
false >>> false
but (Directory name: 'comics') >>> 'comics'
{ 1 . Browser new} >>> 'anArray with (1, a Browser')
now we can ask ourselves if
{ (Directory name: 'comics') } >>> { 'comics' } I do not like it or >>> 'anArray with ( comics )
back to my confusion:
I was confused about the fact that I was hijacking the textual representation 'comics' is not a directory but a string now may be I should have return a storeOn: representation or 'aDirectory (comics)'
and introduce displayString 'comics'
Probably that printOn: should not be used the way I did it. but I do not know.
I think that this is a subtle domain and we should provide better guidelines.
Do you understand my points? What do you think?
Stef
-- www.tudorgirba.com www.feenk.com "Presenting is storytelling."