What if your business logic returned data instead of performing I/O? See how a Clojure mindset can radically simplify your Java architecture.
#1about 4 minutes
Applying an alien Clojure mindset to a Java application
A real-world betting bonus application is used as an example to explore how functional principles from Clojure can improve Java code.
#2about 3 minutes
The core concept of pure functions versus side effects
Pure functions, which always return the same output for a given input, are easier to understand and change than code with unpredictable side effects.
#3about 10 minutes
Managing application state using immutability and atoms
Separate business logic from state management by using immutable data structures and a central atomic reference to handle concurrent updates safely.
#4about 8 minutes
Decoupling the decision and execution of side effects
Instead of executing side effects directly, pure functions should return data structures that describe the effects to be performed by an external execution layer.
#5about 3 minutes
Managing input co-effects with Kafka and event sourcing
Use an event stream like Kafka as the source of truth to rebuild application state in memory, eliminating the need for database reads in the core logic.
#6about 1 minute
Designing with a functional core and imperative shell
Isolate pure business logic in a 'functional core' and handle all interactions with the outside world in a thin 'imperative shell'.
#7about 4 minutes
The benefits of data-oriented programming over custom types
Representing domain models as generic data structures like maps and lists allows for greater code reuse from core libraries and third-party tools.
#8about 2 minutes
Achieving a tight feedback loop with a dynamic REPL
A REPL (Read-Eval-Print Loop) enables modifying and inspecting a live application without restarts, creating an interactive and highly efficient development workflow.
#9about 4 minutes
Why Lisp's 'code is data' philosophy is powerful
In Lisp-family languages like Clojure, code is represented by the language's own data structures, which makes metaprogramming incredibly natural and powerful.
#10about 2 minutes
Final thoughts on learning from alien programming languages
Embracing languages with different paradigms, like Clojure, can fundamentally change how you think about and design software in any language.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
05:54 MIN
Answering questions on practical use cases for Clojure
Using backend languages for frontends: Why ClojureScript is an awesome idea!
03:55 MIN
Exploring the benefits of Clojure and ClojureScript
Using backend languages for frontends: Why ClojureScript is an awesome idea!
03:32 MIN
Applying data-oriented programming principles in Java
Modern Java: This is not your father's Java anymore
02:00 MIN
Why Java historically dominated the enterprise space
Enterprise Python: Software That Lives Long And Prosper
07:27 MIN
A hands-on look at Clojure syntax and data types
Using backend languages for frontends: Why ClojureScript is an awesome idea!
03:26 MIN
Live code demonstration of reactive Java
Side-by-Side: Reactive vs non-reactive Java
01:32 MIN
Conclusion on Project Loom's impact on reactive programming
Java's Project Loom & Co - the end for reactive programming?
13:35 MIN
Q&A on Java's future and developer career paths
Beam Me Up, Java! Unraveling the Warp-Speed Evolution: A Journey through Java LTS Versions 11 to 21
Using Java 17 latest features in real world projectsWelcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Ron Veen who introduced the audience to some of the most interesting features that got added to the Java language.About the speaker:Ron is a hig...
Benedikt Bischof
Java BasicsIn 1991,James Gosling invented a high-level, general-purpose, object-oriented andsecure programming language and called it OAK (after a tree in front of hiswindow). And four years later, in 1995, it was renamed after one of the GreaterSunda Islands: ...