data-science

lvh 2025-03-23T21:06:20.510919Z

Hi! I'm currently a happy Clerk user. I'm looking at Clay and it feels very similar. Can someone help me understand better when to use one vs the other? I'd be happy to go watch a talk or whatever.

Daniel Slutsky 2025-03-25T23:28:48.543459Z

@lvh here is an up-to-date talk recording about Clay: https://clojurians.slack.com/archives/C8NUSGWG6/p1742944792794169

Daniel Slutsky 2025-03-23T21:08:58.087419Z

Hi @lvh! We'll have a talk today/tomorrow, and it will be recorded. https://clojureverse.org/t/visual-tools-meeting-31-workflow-demos-5/

Daniel Slutsky 2025-03-23T21:10:14.953629Z

Both Clerk and Clay can be seen as continuations of the namespace-as-a-notebook approach, continuing older projects such as Oz and Notespace. Here are a few differences (writing from Clay's perspective):

Daniel Slutsky 2025-03-23T21:25:02.243409Z

• Clerk is clever. It uses code analysis and caching to re-evaluate a whole namespace efficiently. • Clay is intentionally stupid, and tries to be more compatible with usual REPL workflows, e.g., evaluating one piece of code at a time. • Clerk generates a page which is one single react component. • Clay generates more standard HTML. • Clay also supports publishing pages, books, slideshows, websites, etc., through the https://quarto.org/ publishing system. • Clay conforms with the https://scicloj.github.io/kindly/ standard for data visualization. ◦ Thus, Clay can be used with the collection of Scicloj libraries for data and science. ◦ Also, Clay notebooks are usable (without any code change) from other Kindly-compatible tools such as https://github.com/clojupyter/clojupyter and the new Calva inline visualizations. • Clay is used to document the Scicloj collection of libraries (among other projects), tutorials, etc. It will also be used to document all talks of the upcoming https://scicloj.github.io/docs/community/groups/scinoj-light/ conference. For example, https://scicloj.github.io/tableplot/. • Clay is more tightly integrated into #calva, as far as I know. In a few days also #cursive. • Clay supports automatic generation of tests. Thus, it allows us to generate testable documentation ("literate testing"), which is highly important for projects integrating a few libraries together, such as https://scicloj.github.io/noj/. Hope that makes sense 😊

🙌 1
Daniel Slutsky 2025-03-23T21:33:35.269979Z

TL;DR: I prefer using Clay since it is compatible with usual REPL workflows (eval just this form), supports generating plain-HTML static websites, and is compatible with the other relevant tools (e.g., Clojupyter and inline Calva) and libraries (most importantly Tableplot). But of course I'm biased, as these were our goals in starting Clay in the first place. ---- Of course, the #clerk team is wonderful, and I appreciate them a lot.