hg: lambda/lambda/jdk: Remove FlatMapper and relevant flatMap variants; migrate to flatMap(e -> stream)

Marc Petit-Huguenin marc at petit-huguenin.org
Tue Apr 9 16:13:42 PDT 2013

Hash: SHA256

On 04/09/2013 02:59 PM, Brian Goetz wrote:
>> 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.

No, there is more, but I do not want to call attention to them :-)

> 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.)

Changing stuff, even fundamentally, even late in the game, is fine for me.
What bother me is this increasing feeling of, hmm, claustrophobia when I try
to do something with streams.  I had plans for an I/O stream source where some
parts of the pipeline can be removed and pushed closer to the hardware.  That
would have been cool.

> 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.

- -- 
Marc Petit-Huguenin
Email: marc at petit-huguenin.org
Blog: http://blog.marc.petit-huguenin.org
Profile: http://www.linkedin.com/in/petithug
Version: GnuPG v1.4.12 (GNU/Linux)


More information about the lambda-dev mailing list