beginners 2025-11-08

I'm probably showing my age, but I just had an odd experience with Clojure. Previously when I would setup Clojure om a new computer, I would use a backup deps.edn . This time, after setting up Clojure, I ran it without any deps.edn other than the builtin root deps.edn . To my surprise, I got a working REPL. I'm certain I remember a time when I had to specify at least clojure & spec.alpha as deps in a user level deps.edn. At least I think so. Otherwise, I'm just rambling & truly showing my age.

to my memory i don’t think this has ever been the case

The only thing I can think of is trying to run Clojure via the downloaded JAR directly and needing to specify the Spec stuff on the classpath -- but that wouldn't be the case with deps.edn at any point...?

yes if using a raw -cp arg to java. But i can’t imagine any released version of the clojure cli ever not providing that

unless there was an issue when 1.9 first came out?

(which i think was the first release that needed the separate jars? not sure)

Yeah, 1.9 was when it went from a single JAR to three.

❯ clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.8.0"}}}' -Spath
src:/Users/dan/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar

❯ clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.9.0"}}}' -Spath
src:/Users/dan/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar:/Users/dan/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar:/Users/dan/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar

what was the first version of the clojure cli?

Yup. I'd have to go digging for the early alpha dates to be sure tho'...

Ah, it happened between alpha 15 and 16.

April 26, 2017

was that in new orleans they first showed it off?

New Orleans?

yeah i have a memory that david nolen first demonstrated the new cli in the new orleans conference that Eric Norman put on

Ah... I missed that... yeah, Eric used to be in the NO area...

I remember using the jars directly or with a custom script. I guess some of my habits carried over to the deps.edn era, though I thought I remembered http://clojure.org recommending their presence as deps in the user deps.edn . But, I would willingly accept that my memory might be flawed.

Ah, well, a stroll down memory lane is often an interesting excursion, even if it isn't hugely profitable.

to my memory there was a clojure package on ubuntu/debian that was just using java-cp with rlwrap for you. Quite possible that that needed the extra jars on the classpath?

Alpha 16 was the first version with Spec split out. The Maven version declared Spec (and core specs) as a dependency so that still worked with any Maven-based setup. But... if you were experimenting with locally built versions of Clojure which some folks were, you would be working directly with the JAR files and, yeah, that would require extra JAR deps...

On Linux, I've usually preferred the linux-install.sh available from the core Clojure devs. My custom scripts in the earlier days was mostly on Windows. Sean, I don't remember where I got the earliest jars, probably from a link at http://clojure.org, not wanting (then) to mess with maven & such. I wasn't building a big project, just wanted a modern Lisp.