Raoul-Gabriel Urma will be speaking at Lambda World in September 2016. He will be talking about functional refactoring in Java 8.
PurelyFunctional.tv: How did you get into functional programming?
Raoul-Gabriel Urma: I got a taster for functional-style operations when I was programming in Perl in the early 2000s (happy days!). First-class functions and operations such as map were very useful to process lists. However, I really got into functional programming when I started university and learned Haskell.
PF.tv: Very briefly, what is your talk about?
RGU: My talk is entitled “Pragmatic Functional Refactoring using Java 8”. I discuss a few concepts that are useful to bring up during fancy dinner parties including first-class functions, currying, immutability and Optional. More seriously, the talk covers useful refactoring techniques that Java developers can adopt to produce more flexible and readable code that also reduces the scope for programmer mistakes.
PF.tv: What do you hope people will take away from the talk?
RGU: I hope that people will find that functional programming is not a “scary esoteric thing”. Hopefully the talk will encourage people to explore an adopt functional programming techniques and have a a bit of programming fun 🙂
PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?
RGU: It is useful to have used some of the Java 8 flagship features including lambda expressions and method references.
PF.tv: What resources are available for people who want to study up before the talk?
PF.tv: Where can people follow you online?
PF.tv: Are there any projects you'd like people to be aware of? How can people help out?
RGU: If you are interested in what’s happening in the JVM ecosystem, I’d recommend taking a look at Valhalla (value types, generic specialisations etc) and help the Java team by providing feedback.
PF.tv: Where do you see the state of functional programming in 10 years?
RGU: I’m a believer that OOP and FP are really merging (have merged!) into a hybrid paradigm. Nowadays most programming languages have a common set of features which help developers’ productivity. The old days of OOP vs FP are over, it’s really OOP & FP together now.
Let’s go for controversial: I think in the next ten years we will see mainstream programming languages further embrace Monads and abstractions to work with them. For example, for-comprehensions in Scala are a popular way to compose and work with Option and Future types. These data types have been recently added in Java 8 via java.util.Optional and CompletableFuture so who knows...function types were rebranded as “Functional interfaces” in Java 8 so perhaps “Monads” will have a new sexy name in Java as well 😉 More realistically, I think we will see more adoption and support for features from FP languages such as immutability, first-class continuations and actors.
PF.tv: If functional programming were a superhero, what superpower would it have?
RGU: Gandalf meets Quicksilver.