Stef,

Like Denis said, there is no #next: in Xtreams, AFIACT.

There are 

XTReadStream>>#get
  "Read an object from self.
   If there aren't any elements left in the stream, the Incomplete exception is 
raised."

and

XTReadStream>>#read: anInteger
  "Read anInteger's worth of elements from self and return them in a collection.
   If full anInteger number of elements cannot be read from the source, the 
Incomplete exception is raised."

Like I said, these selector names were chosen to prevent confusion, on purpose. 
I think that is good. I also think that a lot of though went into the design.

#++ could be aliased to #seekForward: and #-- to #seekBackward: I guess. I also 
do not really like the look of them.

BTW, I think that the compatibility layer/wrapper is not good (I would be very 
surprised if it could hide all the semantic differences). What is the point to 
switch to a new stream API if you hide it ?

Also, the current stream API is 'too wide', there are too many methods, too 
much is expected from streams. To change that, the users must be changed.

Sven

> On 23 Mar 2015, at 22:06, stepharo <steph...@free.fr> wrote:
> 
> 
>>>>> Yes but with
>>>>> r next.
>>>>> r next
>>>> The choice for different selector names was intentional, by design. To 
>>>> avoid confusion, because #next and #get are not 100% identical 
>>>> (semantically). This is an important point.
>>> No I asked martin personally. This is the real reason.  There were also 
>>> experimenting to offer an API closer to other language.
>>> So that we have
>>> r get.
>>> r next: 4
>> IIRC, one difference between #get and #next is that
>> 
>>  get cannot return nil and will throw an Incomplete exception when EOF
>>  next can return nil and might throws an Exception
>> 
>> Changing the meaning of an existing selector will cause many problems and 
>> discussions. People will think they do not have to change anything and they 
>> will be wrong.
> Indeed now this is still not a nice API.
> So what would be a nice name for get
> 
> I do not get it. I'm probably too tired
> 
>    get so it is named get and not next.
>        get cannot return nil and will throw an Incomplete exception when EOF
>    but
>    next: that could be confused with next
>        can return nil and might throws an Exception (because it should follow 
> next) :)
>    No stupid stef.
>    next: is from xtreams so it should follow get
>    get cannot return nil and will throw an Incomplete exception when EOF
> Ahhhhhhhh this is probably clear.
> 
> So could we be consistent
> 
> nextItem
> nextItems:
> putItem:
> 
> 
> Now since in anyways people will have to revisit they wrapping of next calls
> which should probably wraped into and Exception.
> I do not see the problem. It is because there is a wrapper that would turn an 
> Xstream stream into a old API (then again I do not understand
> because since the wrapper is another class it can have a next method that 
> delegates to the correct wrapped xstream which may have or not the same api.
> So what is the point?
> 
> I mean once xtream will replace the old one it will be for about 10 years so
> I'm sorry but we should get the api right (and yes I know that ++ -= are 
> correct smalltalk still they SUCK).
> 
> Stef
> 
> 
> 


Reply via email to