António Monteiro ClojuTRE 2017 Interview

António Monteiro will be giving a talk at ClojuTRE 2017. His talk is called Lumo: Bootstrapping a Standalone ClojureScript Environment.

Follow him on his Homepage, GitHub and Twitter. What is your favorite feature of Clojure?

António Monteiro: I think the rich (pun intended) set of highly performant persistent data structures are my personal favorite. Ever since getting used to immutability I find it really hard to go back and have to think about ad-hoc mutation. What is your least favorite feature of Clojure?

AM: This is a hard question to answer, I suppose I've gotten accustomed to somethings that I shouldn't have (the developer version of Stockholm syndrome). One thing that still annoys me though, is how hard it is to get namespaces to reload correctly. Can you briefly describe your talk?

AM: My talk is about Lumo, a standalone ClojureScript environment that I started building the fall of 2016. I'm going to cover motivation, some technical challenges, showcase some features I think are cool and speak about what's next in Lumo's future. Why did you choose this topic?

AM: I've been really interested to see where ClojureScript can go since compiler self-hosting became a reality. Lumo was the product of experimentation with the bootstrapped compiler and my previous experience in the Node.js ecosystem. Now that it actually works and people are using it, I want to get the word out that there's this What is one thing I will be able to do after watching your talk?

AM: Hopefully you'll know what the immediate use cases for Lumo are. I'm inclined to put some emphasis on scripting with ClojureScript so that attendees can finish watching the talk and immediately convert all their hard-to-maintain shell scripts with ClojureScript scripts that run in Lumo! What are t he three most important concepts I need to know to follow the conversation?


  1. ClojureScript can compile itself (this is what allows Lumo to run without the need for a JVM!)
  2. Node.js is JavaScript that runs on the server (no browser necessary)
  3. Building on top of the Node.js platform allows Lumo to piggyback on all the cool features like native modules for I/O and dependency loading. Where can people follow you online?

AM: I'm active on Twitter @anmonteiro90. My blog lives at Are there any projects you'd like people to be aware of? How can people help out?

AM: Lumo lives on GitHub. If you'd like to help out, issues live here, and I've marked some with a newbie label for people looking to make their first contribution.

I've also recently launched a campaign to help keep it sustainable. What one feature from another language would you like to see in Clojure?

AM: Probably tail-call optimization. I understand it's a JVM shortcoming, but it has tripped me up before. Wouldn't save-lisp-and-die also be really cool to see in Clojure? What is your favorite Clojure function or macro?

AM: That's hard to say. If I really had to choose, I'd probably go with either memoize or trampoline.