I am one of the co-founders of SoftwareMill, where I code mainly using Scala and other interesting technologies. I am involved in open-source projects, such as sttp, tapir, Quicklens, ElasticMQ and others. I have been a speaker at major conferences, such as JavaOne, LambdaConf, Devoxx and ScalaDays.
Apart from writing closed- and open-source software, in my free time I try to read the Internet on various (functional) programming-related subjects. Any ideas or insights usually end up with a blog.
Functional programming is here to stay. While it hasn't taken over the world, many of today’s popular programming languages have at least borrowed some of its concepts.
But if someone asks you, "What is functional programming?"—would you be able to answer? Specifically, when can we call a language "functional"? Or, what exactly is "functional style"?
In this talk, we’ll explore the features that may define a language as functional, first by trying to visually identify "functional" code, and then trying to generalise our intuition. This covers topics all the way from higher-order functions, to capturing effects as values.
Next, we'll introduce a couple of FP flavours, which might help to understand, why the definitions of FP that circulate in the virtual world sometimes seem so different.
Finally, we'll try to judge which FP features bring the most value, and quantify a couple of mainstream languages in their "functionfullness".