02 July 2021
Alex Miller
Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (@ClojureDeref RSS)
Clojurists Together announced a more varied set of funding models moving forward to better match what projects have been seeking.
All of the clojureD 2021 videos are now available, including my video discussing a set of new Clojure CLI features and the tools.build library. We have been hard at work polishing documentation and finalizing a last few bits of the source prep functionality and we expect it will be available soon for you to work with! For now, the video is a good overview of what’s coming: expanded source for source-based libs, a new tools.build library, and some extensions to tool support in the Clojure CLI.
We have mostly been working on Clojure CLI and tools.build lately but these items went by this week, maybe of interest:
Does Clojure still have rooms to improve at compiler level? - some discussion at ClojureVerse
CLJ-2637 - Automatic argument conversion to Functional Interface (Lambda) from Clojure fn - this patch was proposed to do automatic SAM conversion for Clojure functions in the compiler.
This is an area we’ve actually spent a lot of time thinking about for Clojure 1.11, (tracking under CLJ-2365 although most of the work has happened off ticket). In particular we have talked about a long list of possible use cases for functional interop and also a long list of ideas for making functional interop less cumbersome, both syntax and implementation. The examples given in CLJ-2637 are primarily about the Java Stream API but we don’t think that’s particularly high on the list of what’s interesting (if you’re in Clojure, just use Clojure’s apis!). But there are cases where you have Java APIs in the JDK or elsewhere that now take one of the SAM-style interfaces, or a java.function interface and it would be nice to reduce the friction in passing a Clojure function without needing to reify - either by automatic detection and conversion, or helper fns, or even new syntax and compiler support. No conclusions yet.
Apropos - Mia, Mike, Ray, and Eric chat about Clojure
Clojure Morsels - a new biweekly mailing list for Clojure news starting soon
REPL vs CLI: IDE wars - Vlad thinks about REPLs vs the command line for dev
Clojure Building Blocks - Gustavo Santos
Getting Started with Clojure - Gustavo Santos
Rich Comment Blocks - Thomas Mattacchione
Learn Datomic - is a new course for learning Datomic and Datalog by Jacek Schae, coming soon!
Who’s Hiring - monthly hiring thread on Clojure subreddit
Some interesting library and tool updates and posts this week:
PCP - Clojure replacement for PHP
holy-lambda 0.2.2 - A micro-framework that integrates Clojure with AWS Lambda on either Java, Clojure Native, or Babashka runtime
clojure-lsp 2021.07.01-13.46.18 - Language Server (LSP) for Clojure, this release with new API/CLI support!
clojureflare - a new ClojureScript lib for using Cloudflare workers
Calva 2.0.202 - Clojure & ClojureScript in Visual Studio Code