Functional Programming
Trainings
Scala is for better or worse is considered a difficult language. Often it is because of highly technical blog posts or instructions that confuse more than enlighten. This Advanced Scala course it to take this supposed "hard material" and simplify it for audiences so that the language becomes within reach.
Apache Spark is a data analysis and aggregation tool built atop Scala. It is also a distributed calculation tool across multiple worker machines in a cluster. What makes the relationship of Spark and Scala so special is the ability to perform data analysis with functional programming or SQL.
This course is tailored for data analysts and engineers looking to harness their data workloads and develop solutions.
RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.
It extends the observer pattern to support sequences of data/events and adds operators that allow you to compose sequences together declaratively while abstracting away concerns about things like low-level threading, synchronization, thread-safety and concurrent data structures.
This class introduces you to the history of RXJava, what purpose it serves, using marble diagrams, and using it in a production environment.
Talks
Starting with JDK 5, we have had Futures, and they mostly went ignored. Now with concurrency and reactive technology in demand, it is essential that we understand what futures are, and how to handle them and make use of their power in asynchronous systems.
In the alternative JVM Language arena, Scala has come out with a new feature set under the code name "Dotty", now called Scala 3. Let’s take a look at some of the cool new stuff that we can use. This presentation will assume basic Java knowledge and no Scala knowledge is required.
Java 8 is pretty great, but mix in JavaSlang (now called Vavr) and get ready for some functional programming excitement.
Imagine toString, equals, and hashCode in a single class. Can you change implementations on the spot? Probably not, there may be too many dependencies on your implementation. Time to break out an adapter pattern, a utility class, or better yet, a type class! A type class is a kind of template in very static functional programming languages. Imagine a template that can read, write information as a side effect as well? Type classes are powerful.
The silent and deadly competitor to React and Angular. Meet Elm. All functional and client language. Absolutely Clean.
We have gone through a lot when configuring our computers with a language, with an editor, and maybe even setting up Git. For every project, though, we may need a different set of tools. In one, you may require Java 17 with a particular version of Kotlin. Another will require an npm of a specific version. You could use something like SDKMan for Java or a node version manager for Node. The problem is that you must install it and ensure you do it correctly for every project. The global installation won’t cut it; the more complex your project dependencies, the more tedious it will get. Nix provides consistent installation of tools so that it gets right every time and for every project. It manages all project dependencies so you can consistently build your project.
ReactiveX is a set of Reactive Extensions developed by Netflix, and is developed for various programming languages, like Java, Scala, and Clojure. ReactiveX overhauls the observable design pattern to achieve reactive goals. This presentation will solely focus on the Java version of ReactiveX, RXJava.