Stream method survey responses (original) (raw)
Brian Goetz brian.goetz at oracle.com
Thu Jan 24 14:05:15 PST 2013
- Previous message: Op fusing (was: Stream method survey responses)
- Next message: About the stream deduping method
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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=Zv5N7TvvYN2fcpK7zP3vLnAuM6F2fvluAFb0eNub28P2bw3d
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
- Previous message: Op fusing (was: Stream method survey responses)
- Next message: About the stream deduping method
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the lambda-libs-spec-observers mailing list