On Sat, 11 Mar 2017 17:17:19 +0100, Tudor Girba <[email protected]> wrote:

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 <[email protected]> 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."



--
Using Opera's mail client: http://www.opera.com/mail/

Reply via email to