Renzo Borgatti Curry On 2017 Interview

Renzo Borgatti will be giving a talk at Curry On 2017. His talk is called Clojure Transducers In The Wild.

Follow him on his Homepage, GitHub and Twitter. How did you get into Functional Programming?

Renzo Borgatti: As a Java/Ruby programmer I was an avid consumer of InfoQ presentations. I once found Rich Hickey presenting on Clojure and describing Object Oriented Design as harmful. Heresy! But that got me hooked: he was convincing. I then discovered that there was an entire world out there made of functions calling into other functions and you could actually create applications out of it! I was amazed. I started learning Clojure and discovered it had deep links into computer science because of Lisp. It was just the tip of the iceberg and I'm still digging nowadays. What is your talk about?

RB: My talk is about a functional abstraction called Transducers. They are inspired by the universality of "fold", a function on collections with a specific operational semantic. It turns out that you can derive many behaviors by just composing this simple interface. They were introduced sometimes ago in Clojure as an improvement on the existing sequence processing. The talk describes in which way I've been using them in production projects, including how to compose, debug and parallelize them. Who is your talk for?

RB: The talk is dedicated to functional programmers curious about Transducers beyond the simple examples found on tutorials. It assumes some degree of familiarity with Clojure (or Lisps in general). What do you hope people will take away from the talk?

RB: Some interest in learning more about Transducers and use them throughout for collection processing. Perhaps see if there is an implementation in their language which is not necessarily Clojure. In general, an understanding of the power of functional abstractions. What concepts do you recommend people be familiar with to maximize their experience with the talk?

RB: I guess the concept of "fold" or "reducing" function are important for this talk. Functional composition is also mentioned several times. What resources are available for people who want to study up before the talk?

RB: The theory is well covered in "A tutorial on the universality and expressiveness of fold" by Graham Hutton, but my talk is not going anywhere near the formality of the paper. An accessible form of this paper is Rich Hickey's talk on Transducers from StrangeLoop 2014 that you're invited to watch here. Where can people follow you online?

RB: I post regularly (although not that frequently) on Twitter @reborg and on my blog. Some work is going on at my GitHub account as well. You might also be interested in the Clojure Pills, my screencast dedicated to the functions of the Clojure standard library. Are there any projects you'd like people to be aware of? How can people help out?

RB: I'm writing a book. No wait: a huge book! It's the Clojure Standard Library Annotated Guide by Manning. People tell me this is the "missing book", a collection all the information regarding a function that you can only find out spending hours online. It's also monumental work, with 30+ chapters. So if you are into Clojure (and functional programming) and interested in writing, please get in touch. Where do you see the state of functional programming in 10 years?

RB: Thanks to languages like Clojure and Scala, a lot of people have been exposed to functional programming concepts much faster than the past. There has been a rediscovery forcing other major languages to introduce functional concepts to meet demand. If the trend stays as it is, it's possible that functional will be the new go-to paradigm for everyday programming (instead of OO). As a matter of fact, it started pretty much functional 60 years ago but the hardware of the time couldn't keep up: we don't have that problem anymore! If functional programming were a superhero, what superpower would it have?

RB: The immutability freeze!