IN/Clojure 2020

India's annual Clojure and ClojureScript conference. 14th-15th Feb, 2020. Pune, MH, IN.

Clojure Macros - the good, the bad and the messy

Submitted by Aravind Baskaran (@aravindbaskaran) on Jan 15, 2020

🌑 Submission Type: Full (40 minutes) Status: Confirmed & scheduled

Abstract

Once you start using Clojure, you know at some point macros will make an appearance. And invariably, we will end up with use cases where macros are deemed necessary. But is it though? Nope, not really. This talk is aimed to shine light on the lessons we learned (read mistakes) along the way, with that hope to cover where macros are the good guys by helping you scale fast, where they are the bad guys hurting your operations and lastly where they are just a plain old mess that needs to be cleaned up.

Outline

  • The happy cycle of learning Clojure
  • Discovering “macros” - crazy good, or just crazy?
  • Writing your first macro
  • Writing your second macro
  • Wait, the first one is not working?
  • Making sense of the “intern”als
  • Complicating things, and making it complicated
  • Wait, do I really need a macro?
  • Lessons learnt, alternatives

Requirements

  • Have some experience writing Clojure
  • Desire to learn/write macros

Not mandatory, but good-to-have
- A certain level of frustration that comes with trying to write new macros or debug macros written by others

Speaker bio

Hey there, I am Aravind coming in from Bengaluru, originally from Pondicherry. I work at Swym Corp building (mostly breaking) things that help scale consumer experience globally with a small team. I started on Clojure about 5 years, and have been head-over-heels ever since, with a touch of tough love.

I have done a few talks behind close doors (nothing that has an online presence), conducting workshops to introduce new tech to college students/graduates.

A runner, a biker-to-everywhere (read cycle), a lover of puns, small teams and everything that helps us go remote.

Links

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('You need to be a participant to comment.') }}

{{ formTitle }}
{{ gettext('Post a comment...') }}
{{ gettext('New comment') }}

{{ errorMsg }}