Supercharged
Java 8
“
Create a platform that offers the
power as Scala, but as easy to
use as Java.
“
Extend the JDK
Reuse JDK Interfaces
Support reactive-streams
Build cross-library abstractions
1
reactive-streams
A standard for interoperability
“
Provides a mechanism for
integrating data publishers and
subscribers.
All cyclops-react data structures
support reactive-streams.
Cross Project
Example
2
Collection
Extensions
Extend the JDK
“
Provide a more powerful stream-
like interface into Java
Collections.
Transform a Java
List
Transform ListX
Group a SetX
Schedule Work
3
Persistent
Collection
Extensions
Extend the JDK & pCollections
“
Persistent collections are efficient
immutable collections. New
versions are created with plus /
minus ops.
Add to a List
(and some other stuff)
Remove from a
List
4
ReactiveSeq
Extend the JDK,
support reactive-streams
“
A powerful engine for
sequential Streaming.
Implements reactive-streams,
supports asynchronous
streaming.
ForEachX
Generator
sequence
5
Stream Source
Extend the JDK,
support reactive-streams
“
An engine for pushing data into
Streams.
Pushing to a
Stream
6
FutureStreams
Extend the JDK,
support reactive-streams
“
Asynchronous streaming -
perfect for I/O.
Concurrent I/O
Why?
7
Data Types
More power to your elbow
Eval
Lazy or immediate evaluation
Tail recursive
Maybe
Lazy evaluation
Tail recursive
Applicative or monad
XoreXclusive Or
Useful for validation
8
Pattern Matching
Exhaustive option checking
“
Objects have a composition
structure (an algebra!)
Pattern matching occurs against
that structure.
Visitor
Matchables
Predicates
9
Transformers
Robots in disguise!
“
Transformers allow nested
objects to be manipulated.
E.g. A stream of lists can be
manipulated by a List
Transformer as if it were just a
single List.
Nested List
ListT
Thanks!
Any questions?
You can find me at @cyclops_aol & john.mcclean@teamaol.com

Supercharged java 8 : with cyclops-react