Fork me on GitHub
#cljdoc
<
2021-08-21
>
lread21:08:09

I am personally fine with cljdoc depending on js - but I have typically been on server-side throughout my career so maybe don’t give my opinion too much weight. Maybe @martinklepsch has a different opinion?

lread21:08:51

Has anybody found the js requirement an issue yet?

lread23:08:13

So far I’m pretty much liking our use of https://github.com/cljdoc/cljdoc/discussions/460 and https://github.com/cljdoc/cljdoc/issues/459. Small observations: 1. it might be difficult for the interested to see what changes I’ve made to the git issue (so that’s not great) 2. there is no commit churn for changes to a design doc (but see 1). 3. discussion threads are nice 4. small deal, but my personal preference is AsciiDoc and git issues are CommonMark.

seancorfield23:08:48

I'm curious, why do you think this will fracture the community? Or do you just mean the Clojure CLI / deps.edn itself (which has been around for close to three years now)?

seancorfield23:08:03

"tools" are CLI-only only already.

seancorfield23:08:19

It's been a strong message from the Clojure team about relying less on packaged artifacts (for many reasons) and relying more on source-based deployment. Datomic Ions is all about source-based deployment, I believe?

seancorfield23:08:22

tools.build is source-only. Cognitect's test-runner has always been source-only. That's the natural approach in CLI-land now. I think lein has a plugin to support git deps?

seancorfield23:08:32

(`lein` seems to have plugins for everything!)

seancorfield23:08:42

Aside from helping beginners, I haven't used lein since... 2015, I think? That was when we switched to boot at work. Then we switched to the CLI and deps.edn in 2018.

deleted23:08:56

we still use lein at outpace.

seancorfield23:08:58

Taking this to a thread since it's not cljdoc-related now 🙂 We kinda got stuck with lein. We wanted to extend it, and writing plugins is kind of a pain. That's why we switched to boot: it was so much easier to extend and write new tasks for.

seancorfield23:08:16

But we didn't like the fact that Boot has you set up the dependencies programmatically -- we liked that aspect of Leiningen's declarative approach. So we put our deps in EDN files and had a Boot task that read those files and set up dependencies. So it wasn't much of a "hop" when the CLI appeared a few years later with deps.edn file!

seancorfield23:08:08

And we've already switched to tools.build at work for all our dev/test/CI stuff. And that's why I've also switched several of my OSS projects over to tools.build and added a build.clj file that supports the full CI workflow.

seancorfield23:08:44

Leiningen's fine "in the small" but it doesn't work well with monorepos out of the box, in our experience. It's a nice experience for beginners because it is "batteries included" and it's a fairly simple install on any platform (it even supports cmd.exe via an old school .bat file) so kudos, there, definitely. But I really do think the official tooling is better for everyone really 🙂

seancorfield23:08:32

They have changed, so that doesn't help, and they're going to change again: -A will stop running :main-opts so you'll have to use -M for that.

seancorfield23:08:59

I think once -A becomes "run a REPL (only)", it will be easier to remember how to use it.

seancorfield23:08:22

Depends on when you boarded the CLI train...?

seancorfield23:08:04

The deprecation warning for -A has been around ever since -M was promoted from "just" :main-opts to also deps/paths -- but the wording of it changed recently.

seancorfield23:08:29

I really do wish they'd turned -R into "run a REPL". It's much more mnemonic: -X execute a function; -M run clojure.main stuff; -R run a REPL. Alas we have -A for "run A repl" 🙂

seancorfield23:08:08

We did briefly have multi-function execution with -X but there's an ambiguity in parsing the command-line that made them take it away 😞

seancorfield23:08:05

Yup, very true about syntax. Erlang is great but it's basically Prolog. Providing alternative syntaxes -- alternative languages sharing a platform's semantics -- is very important (I'm a computer linguist by training/early career). I happen to love Prolog, but I'm weird. I can totally see why having Ruby-syntax on BEAM is a huge draw (I happen to loathe Ruby from a syntax/semantic p.o.v.).

seancorfield23:08:21

A lot of people are horribly put off by Lisp syntax, even though they are perfectly happy to use any number of Lisp semantics in non-() syntax.

seancorfield23:08:44

I think Lisp is just beautiful to read (see, I said I'm weird). Ah, yes, that is a downside -- we need sexp-based differs!

seancorfield23:08:02

(isn't someone working on one of those?)

seancorfield00:08:15

Yeah, I think we'll see some sort of aliases-alias feature in deps.edn/CLI at some point. Folks have been asking about it for years now.

seancorfield00:08:43

I must admit, I have not looked at babashka at all. I know borkdude is doing amazing work but the official tools do everything I need (even though I want them to do more).

seancorfield00:08:57

You could point at babashka and say it's "fragmenting the community" but I don't think that's any more true than accusing the Clojure CLI of doing so 🙂

lread00:08:07

Since we are happily off topic here, I moved to deps.edn ages ago and prefer it. I liked lein, but personally found it too mysterious in the details of what it did, and if I wanted to make it do something else, I did not find that simple. These days I'm using babashka tasks in front of deps.edn.

lread00:08:08

Back in my java days I used maven and that was certainly the case with it. Lein felt a little bit like that but not so extreme.

lread00:08:47

But really I see it as a personal preference... and have no problemo with lein enthusiasts.

lread00:08:14

Yeah, that's the same feeling I had

lread00:08:06

so you care about others, and have opinions, sounds ok to me! simple_smile

💜 3
lread00:08:22

And a blessing, I'm sure. simple_smile

seancorfield01:08:31

Hmm, that inspires me to put "beginner testing" in my brain to come up with a blog post...

💜 3
seancorfield02:08:38

Yeah, and even as a non-beginner, that whole http://gitpod.io/vscode online experience is pretty amazing!

seancorfield02:08:03

@U8QBZBHGD May I DM you about beginner testing stuff? I want to get a sanity check on something.