I am only 12 minutes into this presentation and I've learned a lot. Great work Viktor
Love the inclusion of an andThen api!
Amazing work! Showed me operations that I didn't even think I needed but I do now.
Amazing work. Looks a lot inspired by Reactive frameworks. But, this is much simpler and sounds like this would be a great addition to Java.
Amazing presentation.
Nice and detail explain
I expected the Gatherers to include all the methods from the java-util-stream-Stream as well (perhaps in a different class like `DefaultGatherers` or `CoreGatherers`). This way, I could also use these methods to create connecting Gatherers with the `.andThen` function.
Great presentation!
I hope this will come as an incubator api soon.
I see this gather is somewhat similar to spark functions data frame api's expr functions. Happy that, we are taking good things...
Cool stuff, is there any way to play with it, other that implementing it myself?
I hope this will make its way beyond previews, to catch up to, and to some extent, improve on Kotlin's more powerful collection API 🤞
Will Collectors do something about short#-circuiting as well, or will we have to short circuit in gatherers and then reduce? I.e. implementing allMatch.
When will we have these things in Java to play with? If Viktor Klang talks about this, I'd like to see the comparison with Scala.
5:10 Ngl, i am a little bit conused.. reorder() exists as sort(), duplicateConsecutive() exists with distinct(), groupdUsing() exists through collect() and of course mapConcurrent() exists trhough map(). Yes.. you have to do some extra stuff instead of just putting a your lambda operation as argument but... it exists. All of that would be just another method name or syntax.
Love this as I've run into many cases where I've wanted to extend the streams API. I even ended up building something allowing arbitrary operators based on mapMulti since it was the first official operator to provide access to the downstream sink but it had many shortcomings and didnt parallelize, etc. I kept expecting him to point to the library that has this but then disappointed this is not available yet 😢. Looking forward to this. Some feedback though... gather and gatherer don't seem like the right names, why not operate and operator? Also, where does this fit with reactive streams API? Java streams are great but I've found gaps like it being pull-based (and not push-pull with backpressure like reactive streams) and doesn't inherently support asynchronous operations that have made me use reactive streams APIs instead. It would be good to incorporate these concepts into Java streams. That with virtual threads would truly kill reactive streams.
I was kind of expecting at the end: “… and this is why we have decided to deprecate all intermediate operations in the Stream API in Java 23” 😅
Looks like most of this featurers Reactor already supports
So... Gatherer is in Java 21 yet?
@dazraf