This is good feedback, but why are you sending it here instead of lambda-dev?
-- Cédric On Fri, Nov 16, 2012 at 9:23 AM, Simon Ochsenreither < simon.ochsenreit...@gmail.com> wrote: > After basically everyone on lambda-dev/lambda-libs-spec-experts tried to > tell Goetz to call functions functions, I looked looked into the > implementation and I guess, I can understand their concern now: > > java.util.function: > ------------------- > BiBlock.java > BiFunction.java > BiPredicate.java > BinaryOperator.java > Block.java > Combiner.java > DoubleBinaryOperator.java > DoubleFunction.java > DoubleUnaryOperator.java > FlatMapper.java > Function.java > Functions.java > IntBinaryOperator.java > IntFunction.java > IntSupplier.java > IntUnaryOperator.java > LongBinaryOperator.java > LongFunction.java > LongUnaryOperator.java > Predicate.java > Predicates.java > Supplier.java > UnaryOperator.java > > ( > http://hg.openjdk.java.net/lambda/lambda/jdk/file/ba27872c81f8/src/share/classes/java/util/stream/primitive/ > ) > > Not only that the naming seems to be all over the place and hard to > remember (yes, names actually matter, read on ...), the manual > specialization looks extremely scary. Why are they trying to solve a > JVM/JIT problem (assuming Generics will never be improved) in a library in > such an arcane and error-prone way (why not use at least M4 macros like in > *Buffer)? > > Another weird thing is that these specializations are NOT compatible with > their more general implementation. So everywhere, where you'd want to > define a lambda, a developer now needs to decide if you assign it to e. g. > Function<Integer,Integer> or to IntFunction<Integer>. Even worse, there > seems to be no right or wrong (as soon as your code is slightly generic on > its input, you can't use the specialized functions anymore). > > If a developer used the first way and some library uses the second? Bad > luck. > If a developer used the second way and some library uses the first? Bad > luck, too. > > Also scary: > http://hg.openjdk.java.net/lambda/lambda/jdk/file/ba27872c81f8/src/share/classes/java/util/stream/primitive/and > (to a lesser amount) > http://hg.openjdk.java.net/lambda/lambda/jdk/file/ba27872c81f8/src/share/classes/java/util/stream/op/ > . > > Keep in mind, that classes are currently only specialized to int! So if > they keep this approach, the amount of classes in primitive will quadruple > (int, long, float, double). > > I really hope that Oracle comes up with an better approach, otherwise Java > 8 will be the language will give both OOP *and* FP a bad name ... > > -- > You received this message because you are subscribed to the Google Groups > "Java Posse" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/javaposse/-/h3N9iR664JgJ. > > To post to this group, send email to javaposse@googlegroups.com. > To unsubscribe from this group, send email to > javaposse+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > -- You received this message because you are subscribed to the Google Groups "Java Posse" group. To post to this group, send email to javaposse@googlegroups.com. To unsubscribe from this group, send email to javaposse+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.