Fumiko Hanreich’s talk at Clojure/West is about HoneySQL, a Clojure DSL for representing SQL queries.
People in the Clojure community talk a lot about representing things as data. This is an approach inherited from its Lisp forebears. HoneySQL is a data-oriented DSL that represents SQL queries. You build up SQL statements in a structured form, not string concatenation.
HoneySQL is a good example of a case where the Clojure philosophy allows for a solution to an existing problem. The problem is that SQL is designed as a human-facing language. That’s fine by itself, but it is not a good language for composing pieces of a query into a larger query–the kind of things a program would do. HoneySQL provides an intermediate representation that is way more amenable to manipulation. In a way, it does the same thing for SQL as Lisp s-expressions did for code.
About Fumiko Hanreich
This interview was graciously conducted by Nola Stowe. She’s a programmer, the co-founder of DevChix, and a prolific teacher. She recently ran ClojureBridge Austin. Please shout out to her and say thanks!
Interview with Fumiko Hanreich
Nola: How did you get into Clojure?
Fumiko: In January 2012, my then-former-company asked me to take an online Clojure course. They asked me to spend about 5 hours a week for the course (and my twins were barely 16 month olds then), and I thought it was doable and I said yes. The reality was that I spent way more than 5 hours a week. Just reading and “understanding” reading assignments took a lot of time before starting an assignment. Clojure was my first Functional Programming language. Then the company sent me to Cascalog training offered prior to 2012 Clojure/West, which was my very first Clojure conference. I rejoined the company in summer. A few months later, I started coding in Clojure (for production). Very steep learning curve, yet I fell in love with the language immediately. That’s how 🙂
Nola: What other languages have you done?
Nolq: Your talk is about SQL and Clojure, how did you decide on HoneySQL?
Fumiko: Very good question. I knew someone was going to ask thist 🙂 To tell you the truth, I did not decide it myself. Our architect, Sean (@seancorfield), and Justin (@jkkramer), author of honeysql, spoke at 2012 Clojure conj. After that, it was recommended to me to use for the project I was assigned. I am extremely grateful that honeysql was already there when I needed it. It had everything I needed and made my life much easier.
Nola: What editor(s) do you use and what is your tooling like?
Fumiko: Emacs + paredit and Light Table. I still go back and forth.
Nola: If Clojure was a food, what do you think it would be?
Fumiko: This is an easy question. Quinoa and arugula or kale salad with lemon juice and splash of grounded ginger. Because that’s what I love and am excited to have every single day! It can also be any vegetables or fruits like mango, for example. Simply put, anything I love represents Clojure 🙂
Nola: Thanks for the interview. It was very informative.