Its learning to be more like human devs that struggle with these things
26.02.2026 12:54
π 0
π 0
π¬ 0
π 0
Functional Optics for Modern Java - Part 6
In the series finale, we move from theory to practice to ask when functional patterns actually pay for themselves. We break down Higher-Kinded-Jβs architecture to demonstrate what βJava-nativeβ FP loo...
Functional programming in Java shouldn't feel like fighting the language.
In the series finale, we look at "Higher-Kinded-J" in practice:
β
A 3-layer architecture for pragmatism
β
Spring Boot integration
β
Knowing when to use it
It's time for a "Java-native" FP
blog.scottlogic.com/2026/02/12/m...
12.02.2026 22:44
π 1
π 1
π¬ 0
π 0
Functional Optics for Modern Java - Part 6
In the series finale, we move from theory to practice to ask when functional patterns actually pay for themselves. We break down Higher-Kinded-Jβs architecture to demonstrate what βJava-nativeβ FP loo...
Functional programming in Java shouldn't feel like fighting the language.
In the series finale, we look at "Higher-Kinded-J" in practice:
β
A 3-layer architecture for pragmatism
β
Spring Boot integration
β
Knowing when to use it
It's time for a "Java-native" FP
blog.scottlogic.com/2026/02/12/m...
12.02.2026 22:44
π 1
π 1
π¬ 0
π 0
Functional Optics for Modern Java - Part 5
A unique feature of Higher-Kinded-J is uniting Optics with Effects in a fluent api. In Part 5 we dive into effect polymorphism and how effects structure our code with Higher-Kinded-J's Effect Path API...
Uniting Optics with Effects in a modern fluent Java api. In Part 5 we dive into effect polymorphism and how effects structure our code with Higher-Kinded-J's Effect Path API.
#Java #FunctionalProgramming #Optics #Effects #Programming #OpenSource
blog.scottlogic.com/2026/02/09/e...
09.02.2026 09:01
π 2
π 1
π¬ 0
π 0
Thanks. Part 2 will be out next week
11.01.2026 10:50
π 0
π 0
π¬ 0
π 0
JavaScript (No, Not That One): Modern Automation with Java
Discover how modern Java has evolved into a powerful scripting language, eliminating boilerplate and enabling instant execution for automation tasks
Just published a new article on using #Java for scripting β
If youβve ever wanted to automate something quickly but didnβt feel like fighting with Bash or Python syntaxβ¦ Java might be a better option than you think.
Shebangs, single-file execution, @jbang.dev and more π
π tinyurl.com/h3xskenf
09.01.2026 08:17
π 14
π 7
π¬ 0
π 2
Higher-Kinded-J 0.3.0 released!
New Effect Path API brings railway-oriented programming to Java:
Composable error handling that reads just like the business logic it represents.
Path.maybe(findUser(id))
.toEitherPath(() -> UserNotFound)
.via(this::validateOrder)
.map(this::createOrder)
β 17+ Composable Path types: EitherPath, TryPath, ValidationPath...
β Unified map/via/recover across all effects with .via() and .recover()
β Focus DSL bridges effects + optics
β Spring Boot 4.0 auto-configuration
β Examples and Tutorials
One vocabulary. Clean pipelines. Errors that compose.
https://higher-kinded-j.github.io/v0.3.0/effect/ch_intro.html
The new Effect Path API in Higher-Kinded-J
A single API to Unify Effects and Optics in Java.
No more nested if-checks, scattered try-catch. Just clean, flat pipelines.
find out more: higher-kinded-j.github.io/v0.3.0/effec...
#Java #Effects #Optics #FunctionalProgramming #Spring #Higher-Kinded-J
04.01.2026 16:52
π 3
π 1
π¬ 0
π 0
garciat.com/posts/java-t... This is excellent. Really interesting post with lots pearls to digest. I had been thinking a lot about similar things around embedded kind system for checking bounds. #java #hkt #fp
12.12.2025 00:06
π 2
π 1
π¬ 0
π 0
- π¦ Simple record definitions with @GenerateFocus annotation
- π Fluent method chaining: .hq().city().set(...)
- π Immutable updates that return new objects
- π Collection traversal with .each().getAll()
- β¨ Bulk transformations with .modifyAll()
```java
// Define your immutable data
@GenerateFocus
record Company(String name, Address hq) {}
@GenerateFocus
record Address(String city, List<String> phones) {}
Company acme = new Company("Acme", new Address("London", List.of("555-1234", "444-4321")));
// Navigate & modify deep nested data with a fluent DSL
Company updated = CompanyFocus.hq() // Focus on headquarters
.city() // Then the city
.set("Newcastle", acme); // Immutably update
// Traverse collections effortlessly
List<String> allPhones = CompanyFocus.hq()
.phones()
.each() // Focus on each phone
.getAll(acme); // β ["555-1234","444-4321"]
// Transform all elements at once
Company withAreaCode = CompanyFocus.hq()
.phones()
.each()
.modifyAll(p -> "+44-" + p, acme); // β phones: ["+44-555-1234", "+44-444-4321"]
```
The new Focus DSL in Higher-Kinded-J makes working with deeply nested records a breeze.
check it out: higher-kinded-j.github.io/latest/optic...
#Java #FunctionalProgramming
10.12.2025 21:28
π 2
π 1
π¬ 0
π 0
There is also #SpringSecurity integration and #Actuator integration examples on the website. Really interested to hear feedback from #Spring developers.
01.12.2025 22:12
π 0
π 0
π¬ 0
π 0
Java 25: The βNo-Boilerplateβ Era Begins β amritpandey.io
I would say "Less-Boilerplate" might be more accurate. Some welcome improvements though. amritpandey.io/java-25-the-...
28.11.2025 12:20
π 0
π 0
π¬ 0
π 0
0 o a o
Β© What's New in Higher-Kinded-J 0.2.0
Massive Optics Expansion
This release dramatically expands the optics library with 6 new optic types and dozens of utility classes:
+ Fold, Getter, Setter: New fundamental optic types for read-only queries, single-element access, and write-only modifications
+ Indexed Optics: Position-aware transformations with IndexedTraversal , IndexedFold ,and IndexedLens
+ Filtered Traversals: Compose predicates directly into optic chains with filtered() and filterBy()
+ Limiting Traversals: Focus on specific portions of lists with taking() , dropping() , takingwhile() , slicing() , etc.
+ PartsOf: Transform all focused elements as a single list with operations like sorted() , reversed() , distinct()
+ Fluent API: New operator-style API with Free Monad DSL for building composable optic programs with multiple interpreters
New Functional Programming Primitives
+ FreeMonad: Build domain-specific languages (DSLs) with stack-safe execution and multiple interpreters
+ Trampoline: Stack-safe recursion support for tail-call optimization
+ Const Functor: Phantom type parameter support for advanced type-level programming
+ Alternative Type Class: Choice and failure operations for applicative functors
Enhanced Type Classes
+ Monoid: New methods ( firstOptional() , lastOptional() , maximum() , minimum() ) and instances (Long, Double)
+ Monad: Added flatMap2-5 for sequencing multiple monadic values with effectful combining functions
Six new Composable Optics and a FreeMonad DSL all in the latest #higher-kinded-j release
check it out higher-kinded-j.github.io/optics/optic...
#Java #FunctionalProgramming #Monads #Optics
21.11.2025 17:54
π 1
π 1
π¬ 0
π 0
Bifunctor - Higher-Kinded Types and Optics for Java
Explore Higher-Kinded Types (HKTs) and Optcs in Java with the Higher-Kinded-J library. Learn about Functors, Applicatives, Monads, Transformers, practical functional patterns, and how to write cleaner, more composable Java code for your projects using Optics.
π New in higher-kinded-j: Bifunctor support!
Transform both sides of your data structures with bimap, first, and second operations.
β¨ Use with Either, Tuple2, Validated, and Writer
β¨ Type-safe
β¨ Law-verified
higher-kinded-j.github.io/functional/b...
#Java #FunctionalProgramming #TypeSafety
15.11.2025 12:08
π 4
π 2
π¬ 0
π 1
Nice post. Lots of interesting applications of this with profunctor adapter patterns.
21.09.2025 07:17
π 0
π 0
π¬ 0
π 0
Understanding Contramap
Understanding Contramap
blog.rhetoricalmusings.com/posts/contra...
20.09.2025 23:03
π 3
π 1
π¬ 1
π 1
Profunctor - Higher-Kinded Types and Optics for Java
Explore Higher-Kinded Types (HKTs) and Optcs in Java with the Higher-Kinded-J library. Learn about Functors, Applicatives, Monads, Transformers, practical functional patterns, and how to write cleaner...
π New Higher-Kinded-J 0.1.8 π
β¨ Protofunctors - Transform both inputs & outputs of your functions with dimap, lmap, rmap
π Protofunctor enhanced Optics - Lens, Prism, Traversal & Iso for immutable data manipulation
Checkout the hkj-book higher-kinded-j.github.io/functional/p...
#Java #FP #Optics
10.09.2025 16:11
π 2
π 2
π¬ 0
π 0
Original post: mastodon.scot/@Wen/1151514...
05.09.2025 22:15
π 0
π 0
π¬ 0
π 0