In a reply to the question on the thread titled "Can I use String without "" in ghci?", Richard A. O'Keefe has noted that,

It's also the what-Smalltalk-got-right-and-Java-got-wrong lesson: the right way to convert objects to text is via a *stream* interface, not a *string* interface.

I didn't want to clutter that thread so I am asking a question here.
Where do I find foundational and/or other good references on the topic of "stream interface vs string interface to convert objects to text"? I tried google but failed.

I am looking for pointers that explain the rational behind the above claim made by O'Keefe.

and what is the take of Haskell on this topic?

Thanks and regards,
-Damodar Kulkarni