— moving data from one transformation to another. • Javaverse — – the Java Platform: the JVM the Java compiler, and the standard library; – other languages such as Kotlin, Ceylon, Groovy, Scala, Clojure, etc; – other libraries from Bintray, Maven Central, etc.
Dataflow • Wikipedia: https://en.wikipedia.org/wiki/Dataflow – Dataflow can also be called stream processing or reactive programming. – Dataflow programming is about pipelines. – …data flow programming promotes high-level functional style… Streams, pipelines imply one-dimensional.
and… public static Integer f1(final Integer i) { return i * 2; } public static Integer f2(final Integer i) { return i * 3; } public static Integer f3(final Integer i) { return i * 4; } All this in a class.
an Input public static Integer statementSequence(final Integer i) { Integer x = f1(i); x = f2(x); x = f3(x); return x; } Very traditional Imperative style.
an Input List<Integer> statementSequence(final List<Integer> l) { final result = new ArrayList<Integer>() for (final Integer i: l) { final i1 = f1(i) final i2 = f2(i1) final i3 = f3(i2) result.add(i3) } result }
an Input List<Integer> statementSequence(final List<Integer> l) { final result = new ArrayList<Integer>() for (final Integer i: l) { def x = f1(i) x = f2(x) x = f3(x) result.add(x) } result }
an Input List<Integer> functionApplication(final List<Integer> l) { final result = new ArrayList<Integer>() for (final Integer i : l) { result.add(f3(f2(f1(i)))) } result }
an Input List<Integer> usingStream(final List<Integer> l) { l.stream() .map(this.&f1) .map(this.&f2) .map(this.&f3) .collect(Collectors.toList()) } This is using Streams from the Java Platform library.
an Input List<Integer> usingStream(final List<Integer> l) { l.stream() .map(this.&f1) .map(this.&f2) .map(this.&f3) .collect(Collectors.toList()) } This is using Streams from the Java Platform library. Intermediate Terminal
Small, single threaded, communicating processes are easy to program. (Communicating Sequential Processes, CSP) • Threadpools and processpools make parallelism easy to realize, without manual locks. • Most calculations and dataset are now very big, hence “Big Data”.