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.
@lvh here is an up-to-date talk recording about Clay: https://clojurians.slack.com/archives/C8NUSGWG6/p1742944792794169
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/
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):
• 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 😊
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.