The following info-graphic gives a short overview over what happened since Javaslang 2.0.x.
The static import API.* gives us access to the main functionality of Javaslang. We added some helpers. Beside the well known For() and Match() we now have print(), println(), unchecked() and TODO().
Notably we also added factory methods like those we know from Scala's companion objects. We are able to construct tuples, functions, controls and collections like in Scala (see also above):
- Try(() -> 1/0)
- Failure(new Error())
As we see, no new is needed. This might seem to be trivial but it will make a difference regarding our Match API. Objects will be directly pattern-matchable. We are still working on that, maybe these additions will be deferred to 3.0.
Our collection library grew. We added BitSet, PriorityQueue and several Multimaps. And we significantly improved Vector (see this article).
There is one eye-catching API change that is considered backward compatible. We changed collection indices from long to int. Long indices make only sense when processing possibly infinite streams of data. Moreover, some collections only support int indices. Therefore we did a step back here.
TL;DR we needed more time to get things right. We originally planned to release Javaslang 2.1 this year and Javaslang 3.0 along with Java 9 in March 2017.
This year Javaslang 2.1 beta will be available, followed by release candidates. We target March for the final release of Javaslang 2.1. Javaslang 3.0 will happen after 2.1 (not further specified for now).
It would help if existing applications could switch from 2.0.x stable to 2.1 alpha. We are looking forward to your feedback!