Bill Piel Clojure/conj 2016 Interview

Bill Piel will be giving a talk at Clojure/conj 2016. He is a software engineer.

Follow him on Twitter and GitHub. How did you get into functional programming?

Bill Piel: I took a few courses in functional languages in college, but I wouldn't say that they stuck. However, in the years after, and without me really being aware of it, my programming style trended toward the functional. I was working in PHP and C# a lot at the time. I kept finding myself writing anonymous functions, higher-order functions, immutable classes and classes that contained only methods. Maybe I was doing OO wrong, but these things appealed to me. When a coworker introduced me to Clojure a few years ago, it felt like coming home. What is your talk about?

BP: Overall, my talk is about Sayid, an omniscient debugging and profiling tool that I wrote for Clojure. I'll get into the rationale, some background on omniscient debugging, demonstrate Sayid and then give some insight into how it works. Having an omniscient debugger sounds like a powerful tool, but it also sounds like I could drown in information. How doe Sayid help find the needle in the haystack?

BP: Sayid gives you both fine-grain control over what is captured as well as a powerful interface for querying what has been captured. This should make drownings an infrequent occurrence. What do you hope people will take away from the talk?

BP: I hope to convince people that omniscient debugging is useful and that Sayid is worth trying out. What concepts do you recommend people be familiar with to maximize their experience with the talk?

BP: Anyone who has struggled to get their code to work as desired should appreciate most of the talk. But, there are a few slides where I discuss how Sayid works internally. Having an understanding of [vars](/guide/clojure-concurrency#va r), meta data, dynamic scope and atoms will help here. What resources are available for people who want to study up before the talk?

BP: There are many online resources and books about Clojure that discuss these concepts. Where can people follow you online?

BP: I'm not especially active online as a producer of content. I tweet occasionally at [@bpiel]Twitter. You can find Sayid, as well as a graveyard of other repos, on my GitHub account, bpiel. Are there any projects you'd like people to be aware of? How can people help out?

BP: Sayid! Try it out. Give me feedback. Where do you see the state of functional programming in 10 years?

BP: I don't feel remotely qualified to answer this question, but I often turn to google search frequencies when trying to understand long-term trends. Extrapolating from googling trends over the last 12 years, the functional future looks more like rust and scala and less like lisp or haskell. I'm a huge fan of Clojure, so I'm not pleased to say this. If functional programming were a superhero, what superpower would it have?

BP: It would be able to spawn parallel timelines and travel between them. This would allow it to do things in one reality without affecting the state of the others. Sounds pretty cool. Thank you for the interview!