Should we switch? At least it would be nice to know more about the difference/use cases.
Some findings/notes:
deps.edn is not third-party and seems more ubiquitous
Babashka, clj and many other tools seem to rely on deps.edn
Leiningen takes care of more for you, like creating uberjars and all
clj
Everyone talks about clj -X and how versatile clj is. Can we learn about clj to use it to our advantage? Is it faster or different from lein run in interesting ways?
Classpath
Being unfamiliar enough with Java, I never really read about the classpath.
Is it like Python's PYTHONPATH?
How do different tools (clj, lein) populate it?
I believe clj reads the deps in deps.edn, and lein those in project.clj, but I'm not sure
How does Clojure use the classpath, in what way is it significant to it?
GraalVM
Knowing more about this is very useful.
When we compile a native image successfully with --initialize-at-build-time, does it actually work when we run the generation of an Avro schema all the way through the end?
Then, there's the issue of lein native-image in conjuction with the graal-build-time dep, which somehow does not work. Would be nice to fix that. (Ask on Slack?)
Babashka
Babashka is based on SCI, a limited Clojure interpreter. This toolchain can be nice during development, but some Clojure semantics aren't supported (deftype and definterface come to mind, which might be an issue).
It might be interesting to try and run our project with Babashka; see if it works
Leiningen vs deps.edn
Should we switch? At least it would be nice to know more about the difference/use cases.
Some findings/notes:
clj
and many other tools seem to rely on deps.ednclj
Everyone talks about
clj -X
and how versatileclj
is. Can we learn aboutclj
to use it to our advantage? Is it faster or different fromlein run
in interesting ways?Classpath
Being unfamiliar enough with Java, I never really read about the classpath.
PYTHONPATH
?clj
,lein
) populate it?clj
reads the deps indeps.edn
, andlein
those inproject.clj
, but I'm not sureGraalVM
Knowing more about this is very useful.
--initialize-at-build-time
, does it actually work when we run the generation of an Avro schema all the way through the end?lein native-image
in conjuction with thegraal-build-time
dep, which somehow does not work. Would be nice to fix that. (Ask on Slack?)Babashka
Babashka is based on SCI, a limited Clojure interpreter. This toolchain can be nice during development, but some Clojure semantics aren't supported (
deftype
anddefinterface
come to mind, which might be an issue).Flowstorm Debugger
https://github.com/jpmonettas/flow-storm-debugger