Copy
August 29, 2021
ClojureMorsels🧁
JUXT has refreshed their Clojure technology radar. It has been five years since the last one, which seems like a decent amount of time to allow for the landscape to change. Any radar like this is bound to be controversial but you're bound to find some commonality and perhaps something new.
Felienne spoke at Strangeloop in 2019 about how to teach programming and now she's back with a book to teach us how to teach ourselves! With a growing interest in the community for helping newcomers to Clojure, this book seems particularly timely.
An extremely interesting interview about why Nubank chose Clojure, how they built their applications, and how their software has evolved over time. I really enjoyed this one!
Articles
Clojure is held up to the 1989 paper Why Functional Programming Matters to see how it stacks up. Spoiler: it does well, but varies in important ways.
Optimizing how they use Lacinia at Walmart lead to an interesting new abstraction. This article outlines the reasons for the optimization, how to go about writing it, and ends on a tip for writing your own macros.
In Rich Hickey's A History of Clojure he laments "I also wish I had thought of protocols sooner, so that more of Clojure's abstractions could have been built atop them rather than Java interfaces". Rok takes a deep look at these abstrations, what problems they solve, how they work, and caveats when using them.
What even is the classpath, really? A cryptid? Aliens? Join Arne to find the truth behind the lies.

☁️👽 THE TRUTH IS OUT THERE 🔍 ☁️
Martin explains how he goes about making it easy for folks to contribute to cljdoc. This method takes a lot of trust but he also explains how cljdoc is particularly well-suited to it.
Learning Clojure can be tough and the experiences of beginners can stand as guides to future learners. Thanks for writing out your experience, Michael!
Every developer, given enough time, comes to understand that time is hard to work with (see what I did there?). There are a number of libraries to help with this and like everything in programming there are trade-offs. Henry takes a look at which library is best and comes to the familiar conclusion of "it depends". Read in which ways it depends and decide for yourself.
Talks
Tommie Reiman of Metosin goes through how to squeeze performance out of Clojure, sometimes going to lengths I would not have expected. This is a fascinating talk and shouldn't be missed!
Observations of building a company on Clojure. Some of the conclusions won't be surprising to most readers but I bet I can guess a couple that might ruffle some feathers.
Tools
This is a library for providing faster low-level code for Clojure. It does this by making functions less general, doing inlining, and doing static analysis to select the most optimal code path at compile time.
This library has been around for a long while but I adore the name and I always find the conveniences it provides so delightful. Maybe you will, too?
Falling out of the The Classpath is a Lie blog post is this library, designed to help you deal with the lies and deceptions of the classpath (😂) and dynamically load libraries.
With the new clojure.tools.build having landed there are, naturally, a number of abstractions that would shake out of using it and Sean contributes a few here.
Newer Clojure CLI versions allow you to install "tools", which is what this is. This new tool breaks away from clj-new's support for lein new and boot new templates and creating a new format for templates.
A new Clojure completion library extracted from nREPL for use across other projects. It's already used in REPLy and has been merged into Leiningen as well.
Scicloj tools are coming along nicely, as Daniel proves in this video demoing notespace. These sorts of things would really lend themselves well to blogging, too.
Tutorials
The Calva User Guide now includes a zero-install guide to getting up and running with Clojure in just a few clicks. This is pretty incredible and should translate well to running things locally when the time comes for local installations. Be sure to thank PEZ!
Pranav lets us shoulder surf as he continues his dive into extending Handlebars.java using Java and Clojure. This time he brings part of the Clojure implementation back around to the Java implementation from part 1.
Now that we know how to create functions, our Clojure wizard training continues with namespaces. Pull up your cauldrons, don your wizard hats, and dig in!
Jobs
Griffin is still hiring! Join the AWS of financial services and ship some Clojure.
Interested in providing APIs for the esports industry? This might be the job for you.
Clubhouse is renaming itself to Shortcut the second week in September and they're also hiring.
Extra
Feast your eyes on this! A full-stack Clojure(Script) app for playing multiplayer Texas hold'em poker.
The way Clojure goes about compiling top-level forms can cause some quirky behavior. Maciej shows some of these behaviors and suggest that Clojure's def could be a macro. This discussion on Reddit was so insightful!
I've never seen a project quite like this one. At the most basic level heraldry is a tool for taking descriptions of coats of arms and generating the actual coats of arms. The tool is capable of so much more, though, and has some ambitious goals. Check out heraldry.digital for more.
The first cohort of developers receiving long-term funding via Clojurists Together has been selected! Congratulations to those selected, I'm so happy to see stable funding of open source Clojure work become more widespread.






This email was sent to <<Email Address>>
why did I get this?    unsubscribe from this list    update subscription preferences
Clojure Morsels · PO Box 831 · Alamo, CA 94507 · USA