StreamEx
Functional Java
StreamEx | Functional Java | |
---|---|---|
2 | 1 | |
2,149 | 3,539 | |
- | - | |
6.4 | 0.0 | |
22 days ago | 7 months ago | |
Java | Java | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
StreamEx
-
Favorite hidden gem library?
I really like StreamEx. I do not know why people do not use it often, the syntax is just wonderful.
-
Jodd – The Unbearable Lightness of Java
It gets more perverse if you need to flatMap, or transmute components of map types, etc. If you want even more power, take a look at https://github.com/amaembo/streamex. This sort of container manipulation bread and butter for business processing. I use it every day, sometimes with a dozen operations. This (with liberal use of `final` values) makes for some pretty functional-looking code.
I'll grant you the Kotlin or Scala version is slightly more compact. But not fundamentally different, like the Go version.
I (and the pretty much every language designer in the post-Java era) disagree with you about checked exceptions, but that's a whole different thread...
Functional Java
-
What can I do with Java 1.4?
I made one (Before realizing it'd already been done) to backport newer language features to Java 8 and it was pretty easy to bundle it up as a maven plugin. But going back all the way to 4 will be a notable increase in difficulty. Retrolambda goes to 1.5 but not all the way to 4. You could hypothetically add a layer on top of it to support 1.5 -> 1.4. That or roll a fork of it.
What are some alternatives?
jOOλ - jOOλ - The Missing Parts in Java 8 jOOλ improves the JDK libraries in areas where the Expert Group's focus was elsewhere. It adds tuple support, function support, and a lot of additional functionality around sequential Streams. The JDK 8's main efforts (default methods, lambdas, and the Stream API) were focused around maintaining backwards compatibility and implementing a functional API for parallelism.
Javaslang - vʌvr (formerly called Javaslang) is a non-commercial, non-profit object-functional library that runs with Java 8+. It aims to reduce the lines of code and increase code quality.
Fugue
derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, folds, optics and typeclasses.
protonpack - Stream utilities for Java 8
cyclops-react - An advanced, but easy to use, platform for writing functional applications in Java 8.
underscore-java - java port of Underscore.js
λ - Functional patterns for Java