I found one interesting data point in the Optional-debate concerning 
Optional's predecessor in Guava. It looks like Atlassian has built their 
own Guava-addon/fork, adding pretty much all the things discussed in this 
thread. The description <https://bitbucket.org/atlassian/fugue/> reads:

Google's guava project is a solid utility library providing many useful 
> interfaces and utilities, and it is a very commonly added dependency for 
> most projects. Unfortunately, they have a strong NIH syndrome and are 
> somewhat half-pregnant when it comes to functional-programming. This 
> library attempts round out some of the deficiencies that a functional 
> programmer finds when using Guava.
>

It will be really interesting to watch how the whole ecosystem of standard 
library addons will react when Java 8 starts to gain traction and 
substantial use.
On the one side, lambda's allow a lot more abstraction which would have 
been considered over the top when Java only had AICIs (making addon 
libraries more likely), but on the other side, default methods allow Oracle 
to evolve standard library interfaces continually (decreasing the potential 
traction of addon libraries).

Considering Optional's scope, it seems like it is restricted to only 
support ending some chained collection transformations, not to start or 
participate during those operations. Considering how long it took until 
most popular libraries and frameworks abandoned checked exceptions, I can 
understand that Oracle wants to avoid putting the whole library ecosystem 
into a much more severe limbo with a general-purpose Optional, in which 
parts of the libraries (including the JDK) would keep handling optional 
values at the value level (null), while other parts might decide to handle 
optional values at the type level (Optional).

-- 
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/-/xvDkuRC1V5wJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to