hg: lambda/lambda/jdk: Remove FlatMapper and relevant flatMap variants; migrate to flatMap(e -> stream)
Brian Goetz
brian.goetz at oracle.com
Tue Apr 9 14:59:17 PDT 2013
> The minimum I can't absolutely live without is a Turing machine, so don't mind
> me. It's just that is it the 3rd time that something I really like is removed
> from the stream API.
I hope they weren't the only three things you liked.
For the record, the rationales are:
1. Pluggable Op API. It became apparent very early on that this was
not going to converge within the timeframe needed, and that we were
better off focusing on the parts that were going to converge. Finishing
this and including it in Java 9 is a high priority. (By the way, had we
committed to any of the forms from, say, more than two weeks ago, we
would have nailed ourselves into a corner but good. So this was clearly
the right decision, it was just not ready to stabilize.)
2. MapStream. Again, trying to incorporate streams of different
arities within the implementation and API was putting so much stress on
the design that we were unable to move forward at an acceptable rate of
progress. By removing this as a requirement, we were able to progress
much more rapidly on the stream APIs we do have. After 8, we will look
at whether it is possible to restore this functionality.
3. FlatMapper. We ran numerous focus groups and hack days, and the
feedback was universal on "this isn't ready." Better to leave it out
than get it wrong. As it stood, it was adding a great deal of API
surface area for something few people could understand and even fewer
could justify using. If you're one of those few, congratulations --
you're not the target audience :)
Our goal has been to get what we deliver right, rather than deliver a
bunch of stuff, some of which is right. Sometimes that means a favorite
feature is deemed not ready for prime time.
More information about the lambda-dev
mailing list