Pre-West Prep: Fumiko Hanreich

Eric Normand’s Newsletter
Software design, functional programming, and software engineering practices
Over 5,000 subscribers

Talk: HoneySQL: SQL Queries as Clojure Data Structures

Fumiko Hanreich's talk at Clojure/West is about HoneySQL, a Clojure DSL for representing SQL queries.

Background

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

Twitter

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!

Introduction

Fumiko Hanreich is the next interview participant. She is giving a talk at Clojure/West about using the HoneySQL library for Clojure. The background to her talk is available, if you like.

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?

Fumiko: My very first language was C++ followed by Java at college. From the get-go, everything was OOP (and I believed that was the best thing). I have done quite a few other languages such as Visual Basic, groovy, Flex / ActionScript 3.0, php, ColdFusion, JavaScript, etc. To me, it was easy to adapt to a new language except for Clojure.

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 for th.

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.

Sean Allen
Sean Allen
Your friendly reminder that if you aren’t reading Eric’s newsletter, you are missing out…
Nicolas Hery
Nicolas Hery
Lots of great content in the latest newsletter! Really glad I subscribed. Thanks, Eric, for your work.
Mathieu Gagnon
Mathieu Gagnon
Eric’s newsletter is so simply great. Love it!