13 comments

  • phforms1 hour 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.<p>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.
    • rahen8 minutes ago
      Not slop, though. The main developer is Dmitri Sotnikov (yogthos), who&#x27;s been around in the Clojure scene for a long time and knows what he&#x27;s doing.<p>However, you&#x27;re right to point out that the development is moving really fast. I&#x27;m building a Clojure compiler for machine learning (<a href="https:&#x2F;&#x2F;github.com&#x2F;sheaf-lang&#x2F;sheaf" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;sheaf-lang&#x2F;sheaf</a>), and after 9 months, it&#x27;s still very far from being production-ready.
    • davexunit53 minutes ago
      You&#x27;re right to be suspicious: it&#x27;s slop.
  • davexunit59 minutes ago
    This appears to be vibecoded but not disclosed as such. 2k commits from a single author starting from June 1st with really long commit messages and source code comments. The GitHub org has 19 additional projects that are all recently created.<p>edit: Yup, found a very long blog post that says it&#x27;s made with LLMs near the end <a href="https:&#x2F;&#x2F;yogthos.net&#x2F;posts&#x2F;2026-07-02-jolt.html" rel="nofollow">https:&#x2F;&#x2F;yogthos.net&#x2F;posts&#x2F;2026-07-02-jolt.html</a>
  • phtrivier3 hours ago
    How much does this overlap &#x2F; complements something like jank ? [1]<p>How much &quot;production ready&quot; &#x2F; &quot;battle tested&quot; would this be ?<p>(Not to start a flame war, I&#x27;m genuinely curious about the differences.)<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;jank-lang&#x2F;jank" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jank-lang&#x2F;jank</a>
    • Jeaye1 hour ago
      I am the creator of jank. I am also not interested in a flame war.<p>The key differentiator for jank is the seamless C++ interop, which is a problem not many people are willing to tackle, due to its scope and complexity. jank is a novel approach to this, providing incredible JIT and AOT support of arbitrary C++ libraries alongside your Clojure code, including a Cargo-inspired native build system for building your native deps along with your program (or finding them in the installed system).<p>For some people, there is another key differentiator, which is the amount of AI-generated code involved. My understanding is that Jolt and other newer dialects like Glojure have a lot of spunk and are exploring new ideas, given the velocity that AI-driven coding can provide. I don&#x27;t see jank ever being categorized in that way.
      • phtrivier21 minutes ago
        Thanks, and thanks for the effort on jank !<p>Since you&#x27;re here ;) : I read on the alpha doc that protocols and other part of the clojure object model are not done yet - is your goal to include them eventually, or is there a part of the lore of clojure that makes them not indispensable ?
    • yogthos1 hour ago
      I have a slightly different goal from Jank because my goal is to provide a runtime that supports existing Clojure libraries. I&#x27;ve spent the time to map out Java standard library APIs that popular libraries use and to create shims on top of Chez that allows them to run seamlessly. You can see a list of libraries that are fully tested and officially supported here. <a href="https:&#x2F;&#x2F;jolt-lang.github.io&#x2F;docs&#x2F;libraries.html" rel="nofollow">https:&#x2F;&#x2F;jolt-lang.github.io&#x2F;docs&#x2F;libraries.html</a><p>On top of that, I expose the API for creating shims in user space, so people can easily add their own for the libraries they want to use that might not be covered in the core. And I leverage this functionality myself to create libraries for JDBC layer or crypto that rely on doing FFI to shared system libraries that aren&#x27;t part of the core runtime.<p>In terms of how production ready Jolt is, it&#x27;s still fairly new obviously, so there will inevitably be bugs. However, it already passes full <a href="https:&#x2F;&#x2F;github.com&#x2F;jank-lang&#x2F;clojure-test-suite" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jank-lang&#x2F;clojure-test-suite</a> from Jank, and has its own conformance corpus <a href="https:&#x2F;&#x2F;github.com&#x2F;jolt-lang&#x2F;jolt&#x2F;blob&#x2F;main&#x2F;test&#x2F;chez&#x2F;corpus.edn" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jolt-lang&#x2F;jolt&#x2F;blob&#x2F;main&#x2F;test&#x2F;chez&#x2F;corpus...</a> which is a superset of that. On top of that, I&#x27;m now able to run original test suites for the libraries I support and compare them with JVM outputs to ensure there aren&#x27;t unintended divergences.<p>The other side of it is the benchmark harness which I use to ensure performance stays reasonably close to the JVM, in most cases it&#x27;s within 1.x, and the worst case is around 6x right now. <a href="https:&#x2F;&#x2F;github.com&#x2F;jolt-lang&#x2F;jolt&#x2F;tree&#x2F;main&#x2F;bench" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jolt-lang&#x2F;jolt&#x2F;tree&#x2F;main&#x2F;bench</a><p>So, Jolt basically aims to be a drop in JVM replacement for running existing Clojure code.
  • nucleogenesis4 hours ago
    What a wonderful excuse to dive back into Clojure! This looks fantastic. I wonder what neat stuff might be made in Clojure thanks to a C FFI that wasn’t doable on top of the JVM.
    • pjmlp4 hours ago
      Note that nowadays with Panama, there are more FFI opportunities in JVM implementations as well.<p>Although it is rather verbose, and it is easier to have a C header and run jextract on it, instead of the manual boilerplate.<p>No idea how well AI tooling would manage.
      • ramblurr2 hours ago
        Coffi is a great library that makes Panama FFI&#x2F;FFM painless without interop. <a href="https:&#x2F;&#x2F;github.com&#x2F;IGJoshua&#x2F;coffi" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;IGJoshua&#x2F;coffi</a><p>For example look at this arc from sqlite4clj <a href="https:&#x2F;&#x2F;github.com&#x2F;andersmurphy&#x2F;sqlite4clj&#x2F;blob&#x2F;master&#x2F;src&#x2F;sqlite4clj&#x2F;impl&#x2F;api.clj" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;andersmurphy&#x2F;sqlite4clj&#x2F;blob&#x2F;master&#x2F;src&#x2F;s...</a> it&#x27;s very elegant.<p>(Also can plug my own libvips wrapper using coffi <a href="https:&#x2F;&#x2F;github.com&#x2F;outskirtslabs&#x2F;vips" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;outskirtslabs&#x2F;vips</a>)<p>Using FFI&#x2F;FFM &quot;vanilla&quot; with java interop is also viable, and in my experience the SOTA models do just fine with it (with or without jextract).
        • pjmlp2 hours ago
          Great overview, thanks!
    • busterarm4 hours ago
      I&#x27;ve been diving back into Clojure just recently and this will be something I&#x27;ll be trying to use immediatley.
  • smartmic3 hours ago
    Besides this and jank, there is also Janet; playing in the league of Lisp to standalone binaries. It’s also cool!<p><a href="https:&#x2F;&#x2F;janet-lang.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;janet-lang.org&#x2F;</a>
  • kccqzy4 hours ago
    I understand some don’t like having a JVM, but for running in the browser, what does Jolt on Gambit offer over plain ClojureScript?
    • yogthos1 hour ago
      Oh I would definitely recommend ClojureScript or Squint for running in the browser. Using Gambit to compile to Js was really just an illustration of how Jolt has a portable layer that can be compiled to a completely different Scheme backend. I don&#x27;t really intend to compete with the existing frontend solutions because you really want to keep your dialect as light as possible to minimize the size and friction with the existing Js ecosystem.
  • yogthos4 hours ago
    Author here, glad to answer any questions about Jolt.
    • saityi16 minutes ago
      It&#x27;s neat!<p>How does this fit into the ecosystem compared to something like Babashka?<p>I tried running a cross-platform (JVM, CLR, JS) Clojure project I&#x27;m working on, but it failed trying to load the JVM&#x27;s `System&#x2F;in`. Does Jolt handle reader conditionals? Is the intention for it to always follow the `:clj` branch or are you planning a `:cljolt` or something?
    • iainctduncan2 hours ago
      Congrats, this is awesome! I have followed your writing and have your book, so was excited to see this was you.<p>I have one question, can one drop into Scheme the way one can call Java in clojure, or is one totally firewalled from the underlying Scheme implementation?<p>Great to see Gambit getting love too. Gambit and Chez are amazing achievements.
      • yogthos1 hour ago
        Hi, thanks, glad to hear you enjoy my other work! :)<p>And yes, you absolutely can drop both down to Scheme and do FFI to drive native libs as well<p><a href="https:&#x2F;&#x2F;jolt-lang.github.io&#x2F;docs&#x2F;host-interop.html" rel="nofollow">https:&#x2F;&#x2F;jolt-lang.github.io&#x2F;docs&#x2F;host-interop.html</a><p><a href="https:&#x2F;&#x2F;jolt-lang.github.io&#x2F;docs&#x2F;native-interop.html" rel="nofollow">https:&#x2F;&#x2F;jolt-lang.github.io&#x2F;docs&#x2F;native-interop.html</a><p>I actually leverage this myself in libraries, I ended up writing a Java time layer to support tick here, and I decided to make it a library since I wanted the core executable to stay self contained, and Chez doesn&#x27;t provide timezone handling natively. So, time pulls in a shared system library and shims a Java style API over it that tick can use<p><a href="https:&#x2F;&#x2F;github.com&#x2F;jolt-lang&#x2F;time" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jolt-lang&#x2F;time</a><p>And I&#x27;m doing FFI in Glimmer to provide a Reagent style reactive library on top of GTK<p><a href="https:&#x2F;&#x2F;github.com&#x2F;jolt-lang&#x2F;glimmer" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jolt-lang&#x2F;glimmer</a><p>It ended up working pretty well for a project here <a href="https:&#x2F;&#x2F;github.com&#x2F;yogthos&#x2F;splat-painter" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;yogthos&#x2F;splat-painter</a><p>Definitely excited with the progress so far. It&#x27;s obviously still very fresh, and there are likely bugs and quirks abound, but I find it&#x27;s already quite usable for my own personal projects.
    • micro25884 hours ago
      Awesome work, have you looked into using Racket&#x27;s fork of Chez? It supports some additional extensions and architectures from base Chez that would seem to beneficial as a compiler target, at least that was the case a couple years ago.
      • yogthos4 hours ago
        Thanks, and I have good news on that front actually. I recently factored out a portable Scheme layer and got Jolt to compile against Gambit as a backend. And given that Racket is basically an extension of Chez, it should be trivial to build against it now.<p>I wrote up a post on how this works here <a href="https:&#x2F;&#x2F;yogthos.net&#x2F;posts&#x2F;2026-08-07-portable-jolt.html" rel="nofollow">https:&#x2F;&#x2F;yogthos.net&#x2F;posts&#x2F;2026-08-07-portable-jolt.html</a>
        • micro25884 hours ago
          Really cool, I see now that most all the the Racket extensions to Chez have been up-streamed which is positive for the health of both projects.
          • yogthos4 hours ago
            Indeed, it&#x27;s a nice ecosystem to be part of. :)
  • mark_l_watson3 days ago
    I just saw this - works great to build small self contained apps. (I just tested on macOS, also supports Linux).
    • mark_l_watson3 days ago
      Clojure hosted on Chez Scheme (same as Racket). So cool. I tried building a standalone executable for the Chess game in my Clojure book using &quot;jolt build -m chess-game.cli -o chess_jolt&quot; and it simply worked great.<p>I tried again with a datomic demo and it needed the source code to the open source version of datomic, so I need to do some work on that.
      • eggy4 hours ago
        Curious about the executable size and performance. Mark, you started me on AI with your, &quot;Common LISP Modules: Artificial Intelligence in the Era of Neural Networks and Chaos Theory&quot;. I have never been able to fully leave Lisp behind. I&#x27;ll have to try this on my linux box. What&#x27;s your take on using jolt practically for work vs. learning? Thanks!
  • pmkary4 hours ago
    How many years have it been there? My memory reminds me of Jolt but I very hardly remember what was it, all I remember is that it was a LISP.
    • taolson3 hours ago
      You&#x27;re probably thinking of Ian Piumarta&#x27;s COLA project (Combined Object Lambda Architecture), which had parts named after cola soft-drinks (Coke was a lisp-like language, Pepsi was a Smalltalk-like language, and Jolt was an early implementation of Coke):<p><a href="https:&#x2F;&#x2F;www.piumarta.com&#x2F;software&#x2F;cola&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.piumarta.com&#x2F;software&#x2F;cola&#x2F;</a>
  • pjmlp4 hours ago
    Nice to see further adoption from Chez Scheme.<p>Have to give it a try.
  • dharmatech1 hour ago
    See also lg which is a clojure implemented in go:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;nooga&#x2F;let-go" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;nooga&#x2F;let-go</a><p>Fun fact. It also runs on plan9:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;nooga&#x2F;legmacs&#x2F;issues&#x2F;1" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;nooga&#x2F;legmacs&#x2F;issues&#x2F;1</a>
  • tosh4 hours ago
    it&#x27;s good to have even more (and more slim!) ways to run Clojure<p>(not just JVM and JavaScript runtimes)
  • ivanjermakov4 hours ago
    Jolt Physics: <a href="https:&#x2F;&#x2F;github.com&#x2F;jrouwe&#x2F;JoltPhysics" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jrouwe&#x2F;JoltPhysics</a>
    • eggy4 hours ago
      What does this have to do with Jolt, the Clojure compiler other than in name? Is there a port to Clojure or other connection?
      • Ohentis4 hours ago
        I think the name being the same is worth bringing up. Ideally you would avoid name collisions with big projects but admittedly it does happen all the time.
        • pjmlp4 hours ago
          There are other collisions, like Jolt computer, Dr Dobbs Jolt awards.<p>However to be fair, none of it came to mind when I saw the title.