Java JEP 461: Stream Gatherers

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • pidove

  • Streams is too complex for what it does and it doesn’t even parallelize well. Here is something that does roughly the same thing but I think is way better

    See https://github.com/paulhoule/pidove

    https://central.sonatype.com/artifact/com.ontology2/pidove

  • ferocity

    Write Java expression trees, statements, methods and classes with a LISP-like internal DSL

  • The advantage of the static import DSL is that it is more composable: anyone else can define operators that interoperate with my operators without the complexity of the scheme linked above not to mention more generality. This goes not just for the low level operators like "filter" that you might want to supplement but the many more operators you can write that are implemented out of mine.

    I prototyped an API that works in the same direction as streams by having something like

    https://paulhoule.github.io/pidove/apidocs/com/ontology2/pid...

    in that it wraps all Iterables returned by my methods and has not just the teardown facility but also all the operators attached as instance methods which lets you write the chaining style you ask for that I know is in demand.

    If I was going to go any further on pidove it would have involved more use of code generation and this system

    https://github.com/paulhoule/ferocity

    which was supposed to be a code generator for writing code generators, and it could code generate stubs that would let you write expression trees in Java as S-expressions and build them up into methods and either compile the code to real Java source code or execute the methods by evaluating the expression tree in place.

    Like common LISP you can write syntactic macros in that that metalanguage because an Expression> can be evaluated at compile time, one of quite a few concepts like "quoting" that I encountered in that spike.

    The idea was ferocity would get to the point where it synthesizes a more complete and perfect pidove.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • JDK

    JDK main-line development https://openjdk.org/projects/jdk

  • Map doesn't implement the Collection interface.

    https://github.com/openjdk/jdk/blob/master/src/java.base/sha...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts