Jank – The native Clojure dialect with seamless C++ interop

105 pointsposted 10 hours ago
by giancarlostoro

14 Comments

goldenshale

8 hours ago

I think repl driven development with access to native code could be a magic formula for agent engineering. No restarting, no re-compiling. Plus with persistent, immutable data structures you can iterate with many threads in parallel while maintaining sanity.

jwr

3 hours ago

It is. I'm amazed at how quickly agents can work with my Clojure code base and try things out. They make great use of the REPL.

tikotus

2 hours ago

Can it already reliably close parens? I was disappointed some time ago, but sounds like it's ready for a new go...?

jwr

2 hours ago

This was a problem with early models, I would say more than a year ago, and even then, this problem was solved completely by using the clojure-mcp tools for editing.

Today you don't even need to use clojure-mcp for balanced editing. The models do a perfectly fine job.

tikotus

an hour ago

Thanks! Yeah, it was probably over a year ago that I tried it. Just the thought of a statistical program coding lisp while picking the number of closing parens based on a hunch made me shiver.

delegate

an hour ago

I'm amazed by such questions, really.

This was true with gpt-3.5, but things have moved on, dude !

It's like asking 'do movies have sound now?'. The answer is Yes, not just sound, but also color !

s_Hogg

6 hours ago

The first thing that comes to mind with no restarts or recompiling is the mangled variables you get in Jupiter if you're mucking around trying to get a prototype going and forget which cells have been run. I can definitely see agents having a problem with that. I would just try to make compilation fast if possible

kianN

4 hours ago

Immutability and stateless separate the nrepl from jupyter. Clojure is not strictly functional but it tends to be the most straightforward way to do most tasks in the language.

chr15m

4 hours ago

People who are already using LLMs to drive Clojure REPLs say it works well (see #ai-driven-development on the Clojure Slack). I don't think forgetting which cells have been run is a problem with the described set up.

pjmlp

2 hours ago

Welcome to the previous AI Summer with Lisp and Prolog environments, :)

Pity that the new Summer got to ride an interpreted language, with bindings to native libraries instead.

alper

an hour ago

Is this like Janet?

fp64

a minute ago

It's full Clojure, immutable and stuff, with full C++ interop and native compilation. Janet is strongly Clojure influenced but more of an embedded scripting language. I like both quite a bit.

user

6 hours ago

[deleted]

user

5 hours ago

[deleted]