30 July 2021
Fogus
Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (@ClojureDeref RSS)
Erez Rabih wrote a good blog post that covers a lot of the high and low points of working in the tech industry as a Clojure programmer. It’s a fair and balanced assessment.
Last week I posed a question in a tweet asking:
As a Clojure programmer, what about JDK interop do you wish was cleaner, easier to express, and/or unnecessary altogether (e.g. reified in clojure.core)?
We’ve been thinking about this question a lot lately and had an idea how the answers would fall and were not surprised when they all mostly fell into the following categories.
Cleaner Java variadic method calls (i.e. building an array explicitly)
Methods as first-class functions
Extending abstract base-class dynamically (i.e. reify-class
)
Applicative functions do not work with Java Streams
Cleaner array type hints
String/parseTYPE use
Math/xxx use
Inner class auto-require
Most of these items have related tickets and those that don’t are quite well-known in the Clojure community. Now we’re not entirely sure if all of these are worth pursuing but we are thinking about them all and trying to identify ways that we can smooth the sharp edges of JDK interop. Stay tuned.
Some interesting library and tool updates and posts this week:
clj-kondo - adds macroexpand hooks in version 2021.07.28
tmdjs - DataFrame and Numerics for ClojureScript version 1.000-beta-2
tools.build - version 0.1.7 fixes a problem where an unneeded resources file was overriding the tools.deps dependency
Clojure Tools - release notes for the Clojure command line tools version 1.10.3.933
Flashback to Lambda Days 2017 when David Turner (SASL, KRC, Miranda, Haskell) gave a talk titled Some History of Functional Programming Languages from his fascinating and unique perspective.