Remix.run Logo
phforms 2 hours ago

As a more-or-less neutral observation (I still kind-of like the project): What I find curious - perhaps a sign of these times: After just 2-3 months in development (judging from the repo commits, obviously I have no insight into what came before), the developer already communicates Jolt as a feature-complete, polished (perhaps even mature) Clojure dialect with multiple Jolt-adapted libraries from JVM-Clojure, FFI, Fibers, already with a professional looking and marketing-focussed website, detailled documentation, nREPL support, etc. Things I wouldn’t expect so soon from a language developed (mostly?) by a single person in such an early release stage.

I don’t know how to get a feeling about the actual state of projects like this anymore, so I always remain a bit suspicious. In Clojure, there is the (Rich Hickey inspired) design philosophy of “hammock driven development”, where we don’t rush things, let them simmer while lying in the hammock, sleeping on them, taking a walk, etc. Makes me wonder if projects like this are too rushed these days without thinking things through, discussing design decisions and getting ideas from other people, letting them mature over time. This isn’t specifically about Jolt (I don’t know much about it or its creator), it just inspired the thought, especially when comparing it to projects like Jank which has been years in development, with lots of feedback from the community and Clojure core maintainers as input.

yogthos an hour ago | parent | next [-]

The reason it's possible to move fast here is due to the fact that I'm porting an existing language to a new runtime. All the hard work and hammock time has already been spent by the core Clojure team and the community. I'm not aiming to reinvent the wheel here. Furthermore, having worked with Clojure for nearly two decades now, I have a very good idea of what the language does, and what I need to implement on the host platform.

Once I had the basics bootstrapped, it was really a matter of getting tests passing, and then getting more and more libraries to run on it which allowed me to exercise their own tests. And that's what really made the whole thing possible. It's sort of the ideal scenario where you have very well specified inputs and outputs, and a ton of existing tests to ensure you are implementing the behaviors correctly.

The only other aspect here is performance, and that's addressed by having an extensive benchmark harness which compares with JVM timings. This allows me to see where performance gaps are, and focus on addressing them.

I would be careful in extending my experience of being able to port Clojure to Chez Scheme runtime to working with LLMs in general because in most cases you don't have such well defined parameters when you start.

mark_l_watson 17 minutes ago | parent [-]

Great work. It just simply worked for me.

rahen an hour ago | parent | prev | next [-]

Not slop, though. The main developer is Dmitri Sotnikov (yogthos), who's been around in the Clojure scene for a long time and knows what he's doing.

However, you're right to point out that the development is moving really fast. I'm building a Clojure compiler for machine learning (https://github.com/sheaf-lang/sheaf), and after 9 months, it's still very far from being production-ready.

phforms 13 minutes ago | parent | next [-]

From what I’ve seen so far, I would also not dismiss it as slop, even though I’m generally against vibe-coding (but more for ethical and environmental reasons, not because the code is inherently bad/slop/whatever). Many people seem to have a hard time acknowledging that LLMs actually can produce good stuff, but it highly depends on the experience of the developer who guides them.

If a dev is competent and has enough experience actually writing code and making good design decisions, I see no reason to judge their work on the basis of what tools they used to get the job done. However, it may still put me off, since I find it hard to value LLM-written code the same way I value human-written code, even though it may be equally good or even better in quality.

davexunit an hour ago | parent | prev [-]

> Not slop, though.

What would you call 2k commits in 2 months by a single committer if not slop?

rahen an hour ago | parent | next [-]

It definitely is vibe-coded, but yogthos is a competent programmer who has been working on public Clojure projects and repos since 2009, and has maintained a large Clojure framework since well before LLMs were a thing.

I don't think "2k commits in 2 months" is enough to dismiss as slop when it's being developed by a competent Clojure dev.

YorickPeterse an hour ago | parent [-]

Competent or not, slop is still slop. The website in particular uses the exact same copy-paste layout/style produced by LLMs and used by pretty much every slop project out there.

One very quick "slop or not?" test is to see if em dashes are used in the source code where they literally never make sense. It's not a great test, but it's one that consistently turns out to be good enough. The results should speak for themselves: https://github.com/search?q=repo%3Ajolt-lang%2Fjolt+%E2%80%9...

broken-kebab 15 minutes ago | parent | prev | next [-]

'Slop' is a word about quality, like in 'AI slop' - a low quality code generated with LLM. Did OP managed to achieve reasonable quality notwithstanding the speed? I don't know yet, but unless you can point to something sloppy in the repo, calling it slop may not be warranted.

yogthos an hour ago | parent | prev [-]

If you have any actual constructive criticism of the code, then I'd love to hear them.

whalesalad 22 minutes ago | parent | prev | next [-]

Honestly LLM’s really foster hammock driven development.

davexunit 2 hours ago | parent | prev | next [-]

You're right to be suspicious: it's slop.

jakebol an hour ago | parent | prev [-]

I understand the emotions and arguments on all sides, but you have to admit the irony debating if a lisp project implemented on top of a lisp by AI to empower further AI enabled lisp development is not in the original spirit of why all this exists in the first place.