Biff.core: system composition for Clojure web apps
Posted by jacobobryant 10 hours ago
Comments
Comment by lukaszkorecki 5 hours ago
Comment by jacobobryant 5 hours ago
Comment by embedding-shape 49 minutes ago
Comment by jacobobryant 13 minutes ago
Comment by holistio 10 hours ago
I used to love writing custom CSS, but Claude is just so much better at Tailwind that I ended up switching, even though I still kind of loathe the class soup.
Is AI any good at Clojure?
Comment by iLemming 8 hours ago
It's okay when you use it just like any other PL, which is roughly the Unix/pipe model - batch-style. Agent spawns process -> reads stdout/stderr -> spawns next process. State lives in-between the calls and in files. Each tool invocation is stateless.
Things get far more interesting when you give an LLM a true Lisp REPL. LLM stops guessing and starts empirically analyzing current state of things and produces working solution faster, costing far less tokens. And you get to watch it solve things interactively, e.g. I often let AI poke through our UI (via Playwright-driven Clojurescript REPL), while monitoring situation in k8s - through nrepl port, connected to Clojure REPL.
Comment by jwr 9 hours ago
Comment by Capricorn2481 59 minutes ago
Clojure meanwhile is very terse without being unreadable. It really does read like a series of data transformations.
Comment by mechanicum 9 hours ago
Recently, I’ve been quite impressed, at least with Claude. At some point they figured out the parens issue, and the code is largely solid and idiomatic. I’ve mostly used it with Polylith apps, so the context for any given change is naturally well-defined. Usual issues with failing to reuse existing functions or make sound decisions about architecture, but no more so than I’ve seen with TypeScript or Rust.
I think there are a few points in its favour: it’s a very concise language, the documentation is terse but precise and comprehensive, and while there’s obviously nowhere near as much Clojure out there as there is JavaScript or Python, there is a lot. As the Clojure demographic skews toward experienced, senior programmers, I’d guess the quality of that corpus is probably well above average.
Java stack trace errors might even be an advantage now.
Comment by kayo_20211030 8 hours ago
Comment by y1n0 8 hours ago
Comment by arikrahman 7 hours ago
Comment by devin 7 hours ago
Comment by oDot 10 hours ago
I have migrated all my code to Gleam, FE and BE, Bun, browser, and BEAM.
Claude knows much less about Gleam than it does about Javascript or React. However the constraints of Gleam and its Elm inspired framework Lustre are so strong, Claude gives me much better results.
The only difference is I need to adjust my initial guidance.
Comment by elxr 8 hours ago
I've always admired the direction gleam was heading in, and the community is awesome. But with gradual typing now in elixir, I'm weighing whether or not gleam offers anything special enough to get me spending time there instead of just using elixir.
Comment by bananadonkey 3 hours ago
Comment by escherize 6 hours ago
Comment by elxr 5 hours ago
Comment by packetlost 8 hours ago
Comment by bbkane 9 hours ago
Comment by jacobobryant 10 hours ago
For Biff I've been using AI to generate a rough draft of all the code and then I take a manual pass over things before releasing. Seems to be a good middle ground.
Comment by holistio 3 hours ago
My impression is that I voiced a valid concern. I suspected handling parentheses is problematic.
Comment by michaelmrose 8 hours ago
Comment by iLemming 8 hours ago