Given the anticipated usage of this proposal in Java, I'm not sure the
Python approach you quoted is the right one.
The main reason: I see how it works with Map/FlatMap, but what about cases
like FileIO.write(), parameterized by several lambdas (element ->
destination, destination -> filename policy, destination -> sink), where
different lambdas may want to access different side inputs? It feels
excessive to make each of the lambdas take all of the side inputs in the
same order; moreover, if the composite transform internally needs to pass
some more side inputs to the DoFn's executing these lambdas, it will need
to manipulate the argument lists in nontrivial ways to make sure it passes
them only the side inputs the user asked for, and in the proper order.
Another reason is, I think with Java's type system it's impossible to have
a NewDoFn-style API for lambdas, because annotations on lambda arguments
are dropped when the lambda is converted to the respective single-method
interface - a lambda is subject to a lot more type erasure than anonymous
On Wed, Sep 13, 2017 at 1:03 PM Robert Bradshaw <[EMAIL PROTECTED]lid>