Clojure Deref (May 12, 2023)

Clojure Deref (May 12, 2023)

12 May 2023
Alex Miller

Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (@ClojureDeref RSS)


All of the Clojure/conj 2023 videos have been re-posted with an intro screen that includes our wonderful platinum and streaming sponsors! Apologies those were missing. Also, you can now find the slides for Rich Hickey’s talk Design in Practice, which many people have requested. Happy designing!

This week Stack Overflow opened their 2023 Developer Survey - it is very important that our community continues to show up in these results, so I would beseech you to take a few minutes and fill it out (a lot of it is optional). This year, in addition to Clojure being included in the languages section, Datomic was included for the first time in the Databases section, and Shortcut (written in Clojure) showed up in the developer tools.

From the core

Fogus and I have come up out of fog of Conj and diving back into the Clojure 1.12 work. Sean Corfield has been very helpful in tracking down a very subtle regression in the IDrop changes in 1.12.0-alpha1 (CLJ-2772) and we should have that fixed for the next alpha. Additionally, I’ve been working through feedback on add-libs and Fogus on Morse feedback and we are taking care of those.

On new feature work, I’ve been working on our approach to Java functional interface interop, and Fogus has been working on some Java stream integration and a possibly new piece of syntax for using Java static methods as functions. We are hoping to land most or all of that in 1.12.

Libraries and Tools

New releases and tools this week:

  • deps.clj - A faithful port of the clojure CLI bash script to Clojure

  • di 2.3.0 - DI is a dependency injection framework that allows you to define dependencies as cheaply as defining function arguments

  • process 0.5.19 - Clojure library for shelling out / spawning sub-processes

  • fs 0.4.18 - File system utility library for Clojure

  • vocabulary 0.3.0 - Utilities to map between clojure namespaced keywords and RDF-style URIs

  • skyscraper 0.3.5 - Structural scraping for the rest of us

  • tools.cli 1.0.219 - Command-line processing

  • openai-clojure 0.6.0 - Clojure functions to drive the OpenAI API

  • calva 2.0.358 - Clojure & ClojureScript Interactive Programming for VS Code

  • farolero 1.5.0 - Thread-safe Common Lisp style conditions and restarts for Clojure(Script) and Babashka

  • fitdistr 1.0.6 - Fit distributions with mle, mge, mme and qme methods (+ bootstrap)

  • fastmath 2.2.1 - Fast primitive based math library

  • clojure-cli-config 2023-05-09 - User aliases and Clojure CLI configuration for deps.edn based projects

  • datalevin 0.8.15 - A simple, fast and versatile Datalog database

  • clj-otel 0.2.1 - An idiomatic Clojure API for adding telemetry to your libraries and applications using OpenTelemetry

  • splint 1.4.1 - A Clojure linter focused on style and code shape

  • kaocha 1.83.1314 - Full featured next gen Clojure test runner

  • pretty 1.4.2 - Library for helping print things prettily, in Clojure - ANSI fonts, formatted exceptions

  • krestianstvo-electric - Krestianstvo | Electric - Clojure. Implementing a scalable Croquet VM