Biff.core: system composition for Clojure web apps

(biffweb.com)

31 points | by jacobobryant 2 hours ago ago

9 comments

  • holistio 2 hours ago

    Recently my impression has been that whatever the agentic tools are best at is also what's best for solo projects or proof of concepts.

    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?

    • kayo_20211030 2 minutes ago

      Yes. Generally, it's quite good. It does have a blind spot with parens, but good old Claude Opus then cranks up a python script (yes!) to sort it all out. I wouldn't leave any of the models out on their own - you'll still have to clean up some obviously crazy stuff, but it's pretty clear what needs to done. In conclusion, Claude and ChatGPT are quite decent at Clojure. Oh, I do like Biff.

    • mechanicum an hour ago

      Last year, I thought it was awful. Even Opus would reliably unbalance parentheses on practically every edit and then enter a doom spiral of making things worse as it tried to figure out the right place to put a `)`.

      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.

    • jwr an hour ago

      AI is very good at Clojure. In fact, from what I can see, I get a much better experience on a large Clojure+ClojureScript code base than many other people. Surprisingly so. I'm still not sure why, is it higher token density of the language? My experience? Large, well-written and well-maintained code base to lean on as context? In any case, the experience so far has been excellent.

    • oDot 2 hours ago

      This is a bit of an "XY Problem" question.

      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.

      • elxr 3 minutes ago

        Any favorite gleam projects to learn from?

        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.

      • bbkane an hour ago

        How are you liking Gleam and Lustre? What went particularly well or badly?

    • jacobobryant 2 hours ago

      AI has been working out well for me writing Clojure, both in personal projects and at work. Documentation, not so much... I write all that by hand.

      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.

    • michaelmrose 18 minutes ago

      It is but it remains shockingly bad at closing sufficiently deeply nested parens at least as far as chatGPT