Stream method survey responses

Brian Goetz brian.goetz at oracle.com
Thu Jan 24 14:05:15 PST 2013


I have:
  - renamed tee to peek
  - renamed uniqueElements to distinct
  - added no-arg sorted
  - adjusted parameter names in limit, substream

Remaining to do:
  - more discussion on explode

On 1/24/2013 12:33 PM, Brian Goetz wrote:
> I've closed the survey on Stream methods.  Here's the full data for
> people to browse on their own:
>
> https://www.surveymonkey.com/sr.aspx?sm=Zv5N7TvvYN_2fcpK7zP3vLnAuM6F_2fvluAFb0eNub28P_2bw_3d
>
>
> Here's a summary of comments.  *PLEASE START SEPARATE, METHOD-SPECIFIC
> THREADS FOR NONTRIVIAL REPLIES*.
>
> filter -- No comments
>
> map -- No comments
>
> explode -- Lot's of comments here, clearly we're not done yet.  Most
> comments had to do with confusing naming.
>
> uniqueElements -- "distinct" seemed preferred to "unique".  Also, most
> other method names are verby; I propose changing to "removeDuplicates"
> or "filterDuplicates".
>
> sorted -- strong desire to add sorted() which uses natural order (or
> throws).  Similar to above, should we replace "sorted" with "sort" to be
> more verby?
>
> forEach -- No comments.
>
> forEachUntil -- Sam prefers a content-based forEachUntil.  Remi prefers
> we outlaw infinite streams.
>
> tee -- Clear confusion over the name.  This method is mostly for
> debugging, since stream operations are jammed and therefore filtering,
> mapping, and reducing all happen at once, while users might wanting to
> see what happens after each stage.  The tee() method lets users peek at
> values that go by.  The name "tee" suggests it creates a new stream,
> which is wrong.  Suggestions include "peek" or "tap".
>
> limit / substream -- Suggested to change method parameter names to not
> suggest indexing.
>
> toArray -- Need code examples to illustrate array supplier.  Suggestion
> to use a Class literal instead of a lambda.  (After extensive
> reflection, I think this is a bad idea.  Everything else in this API
> uses constructor references, and we support array constructor references.)
>
> reduce -- suggest parameter rename identity -> base.  Remi hates Optional.
>
> collect(Supplier, BiBlock, BiBlock) -- Don hates the name.  Suggestion
> to define in terms of collect(Collector).
>
> collect(Collector) -- various naming suggestions
>
> collectUnordered -- suggestion to use forEach instead
>
> min/max -- Some distaste for Optional only being used when stream is empty.
>
> xxxMatch -- no comments
>
> findXxx -- Same comment about Optional for empty streams only
>
> sequential / parallel -- minor naming nits.
>
>
>  From this, here's what I think is left to do:
>   - More work on explode needed
>   - Consider renaming uniqueElements / sorted / others for verbification
>   - Rename tee
>   - Parameter renaming
>


More information about the lambda-libs-spec-experts mailing list