Once upon a time, Java programmers were doomed to use runtime casts in order to reuse data structures, which caused them lots of debugging nightmares. That horror story happily came to an end when Java 5 added generics in 2004, but, alas, evil was not completely removed. Nowadays, Java programmers still suffer from a lack of so-called higher-kinded generics, which causes no shortage of modularity nightmares when they attempt to reuse and test their APIs. Unfortunately, higher-kinded generics is neither available nor expected in Java, but you can find it already in the JVM through Scala! In this talk, we will unveil the problems of conventional APIs and show how they are solved using generic, higher-kinded APIs. And know what? At the end of the road we will realise that we ended up in … lambda world, without even wanting to!, making the most of three usual suspects of purely functional programming: type classes, monads, and pure functions.
Juan Manuel is CTO and co-founder of Habla Computing. He has been using Scala for the last six years in real-world applications for the banking sector, and has extensive experience in consultancy projects with scalaz, cats and other functional frameworks of the Scala ecosystem. He founded and manages the Madrid Scala Meetup group and is member of the organizing committee of lambda.world. Prior to joining Habla Computing, Juan Manuel was a University teacher for more than fifteen years in different computer science and software engineering degrees.