Join Newsletter

Bending Clojure to your Will: Macros and Domain Specific Languages

YOW! Lambda Jam 2013

Whatever the system you’re working on it can probably be thought of as a living organism. You nourish it, extend it, add new abilities and inevitably it will depend on external factors to operate properly.

It’s not uncommon for systems to have multiple dependencies on external services. This communication sometimes goes both ways – as well as being asynchronous a lot of the time – and appropriate actions should be taken when certain ‘events’ happen.

The way in which these ‘events’ are handled can be the difference between a clean, easy to reason about codebase and a tangled mess. Who never got stuck in callback hell?

Functional Reactive Programming provides better abstractions in such scenarios.

It models your system’s behaviors as streams of values that change over time. In a functional setting, this allows streams to be filtered, mapped over, sampled, reduced and composed in a number of ways much like you compose pure functions.

In this talk you’ll learn what’s in it for you: how you can use FRP, what’s its sweet spot as well as what tools are available to you.

Make sure you bring a laptop with a working Clojure development environment. By that I mean at least two things:

  • Leiningen 2.x: https://github.com/technomancy/leiningen
  • Your favourite Clojure editor: Emacs, vim, La Clojure (IntelliJ plugin), Counterclockwiste (Eclipse plugin) or any other editors you like

Leonardo Borges

Head of Engineering

RecordPoint Software

Australia

Leonardo is a software engineer, learner, author, speaker, mentor, tech advocate and leader.

He's passionate about building healthy, motivated engineering teams and whole heartedly believes culture is at the centre of any successful endeavour. 

He loves to explore and develop innovative ideas by researching, building and collaborating with highly motivated individuals who want to deliver practical solutions on a large scale.

Some of his specialties and interests include: software architecture, distributed systems, functional programming and machine learning.

He is also the author of the Clojure Reactive Programming book, published in 2015.