nicolas cellier wrote:
Andreas Raab a écrit :
I mean that some of the basics of the Squeak stream hierarchy got put into place some twenty years ago and some assumptions simply changed over time. I would expect the same to be true for Nile, in particular if the quantitative reuse of traits is higher. For example, consider that a trait defines an operation that raises an exception (#next anyone? ;-) and that five years later you figured you were wrong and that you'd rather have it silently return nil. Can you fix that at this point? Seems *very* unlikely if those traits are widely used. So what happens is that every "new" user of that trait will start overwriting the method so you get into precisely the same situation as with the current collection hierarchy. It seems unavoidable in the long term that some of these issues will happen (and yes, "in theory" all of that is fixable but I'm talking about a practical situation).
Hello Andreas, If you insist on it, yes, I must agree that answering nil at the end of a Character Stream is a good trade-off and a simple lightweight implementation.
I'm not insisting on *anything*. I'm making up an example where a reasonable person could come up with arguments either way and where -as time goes by- the arguments may way out differently. This had absolutely nothing to do with actual Stream>>next behavior; it had everything to do with the fact that there are good reasons for making it go either way. And no, I have absolutely no interest in discussing this issue and will stay out of any further discussion about what the "right" stream behavior is.
Cheers, - Andreas