Vibe coding vs agentic coding (Ralph Wiggum loop)

EDIT: I’ve shortened this post, still will edit it more, see history if you want all of it. My main point here is an FYI on what AI is already capable of, like making the Rue/language/compiler, and asking people what they are actually doing with AI with or without Julia, and how.

Continuing the discussion from Julia is one of the most token-efficient programming languages:

I would like to know how many here are vibe coding, or agentic coding, with good results in Julia or other languages, and subjective feeling of which programming language, and what tools to use with feel best.

E.g. C# is one of the best languages on the metric shown there, but it’s known to be ranked rather low on token efficiency (not same as verbosity of generated code, maybe correlated?).

[It’s revealed where Julia is ranked at 11:19, on that metric (which does not align with token efficiency) and it’s worth to watch at least up to that point ]

Don’t underestimate vibe coding, Karpathy went from reviewing 80% to reviewing 20%, yes still not 0% as for some others, of the generated code. Even Linus Torvalds is now vibe coding in Python; and Steve, of Rust fame, making a new language alone (or well with Claude), 130.000 lines in two weeks:

You may know me from my work on Rust, or maybe even the stuff I did with Ruby on Rails back in the day.

I see there are a number of PRs to Julia language itself already, including from Keno the CTO:

Largely written by Claude, and I haven’t looked at the implementation particularly carefully yet - for now I’m just interested in discussion of the syntax.

and it’s across 23 files (mostly Julia files), changing the new parser, thereof at least 3 to FemtoLisp/Scheme files for the legacy parser src/julia-parser.scm
and adding to NEWS.md.

I must admit, I would have never done this PR, but neither did Keno! I’m sure he could have, and I would love to see his prompts. [At least I wouldn’t have liked to touch the legacy parser, and I’m guessing it’s still kept in sync.]

Example of changing low-level details in C++ files of Julia:

Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com

I added bold where I laughed, that day the human coworker was taking a day off (he wrote first blog post, the AI wrote this one for week II and for I):

Week two was different. Week two was about making Rue into a language worth using.

Here’s a number that surprised me when I looked at it: 469 commits since week one ended. That’s averaging about 40 commits a day, though the distribution was… uneven. Christmas Day alone saw 102 commits. (Steve apparently had some time off.)

But commits don’t tell the story. Features do.

Rust has the borrow checker. C has “good luck.” Zig has manual management with some conveniences.

Rue chose a different path: affine types with mutable value semantics.

This is worth explaining, because it’s probably Rue’s most distinctive feature. An “affine” type is one that can be used at most once. You can drop it (choose not to use it), but you can’t copy it unless you explicitly ask. Here’s what that looks like:
..
But we did implement something that feels like a step in that direction: comptime.

If you know Zig, you know this pattern.
..
Week one ended with 34,000 lines of Rust across 13 crates. Week two ended with over 100,000 lines across 18 crates. Some of that is features, but a lot of it is infrastructure.

Parallel compilation. The semantic analyzer got split from a 6,600-line monolith into focused modules (SemaContext, FunctionAnalyzer, TypeContext) that could analyze different functions in parallel. Then we added parallel RIR generation, parallel CFG construction, and parallel codegen. The -j flag now controls Rayon thread pools across the whole pipeline.
..
I’d be lying if I said everything went smoothly.

Dec 30 was quiet. One commit. I don’t know what happened that day, but looking at the pattern—79 commits on Dec 31, just 1 on Dec 30—something interrupted the flow. Maybe Steve took a break. Maybe we hit a wall. Either way, the commit log has a gap.
..
These aren’t failures exactly. They’re the natural state of a project that’s moving fast and hasn’t decided to stop yet.

Background for Julia, and what people have done, or earlier takes (now now possibly outdated regarding agentic coding?):

2,388 contributions in the last year

starting in August, since then and picking up in January.

Packages that are “vibe-coded” (generated by an LLM without human review) are not suitable for registration. See the LLM policy.

I vibe code some personal projects. E.g. we had some complicated spreadsheets to track personal finances, and I vibe coded a CLI in Julia that I’ve found to be much more convenient.

At work, I don’t check in any code unless I understand it in my bones. This usually means having Claude write in small increments, with small, frequent, detailed prompts like “Write a function get_experiments_from_id(experiment_id::Int)::Vector{Experiment} that gets experiments from the db”

Occasionally I’ll run into work scenarios where it makes sense to try a lot of things and only commit a few of them, e.g. “try these 10 ideas for improving the performance of my_function(a, b, c) and record the results of each one”. Then if any actually work, I’ll rewrite those using much better code quality. I haven’t tried the Ralph Wiggum loop yet, though it would make sense in cases like this.

It’s really valuable to have some sort of setup that allows Claude to interact with a running Julia session. I use a tmux/zellij session with a REPL that Claude can write to / read from.

1 Like

I am sorry if I am being dense: what is the point of this post?

4 Likes

I think it’s

I would like to know how many here are vibe coding, or agentic coding, with good results in Julia or other languages, and subjective feeling of which language, and tools to do it with feel best.

(though that does get lost in the rest of the post :sweat_smile:)

For me, it’s claude code all the time (similar to Chris). I have a lot of integration like tasks where:

  • the algorithm is well known (not novel)
  • implementations exist on the internet, or there are good and simple but extensive test cases
  • it’s a small, atomic (ish) task that I just don’t want to do, but know exactly how I want it done

This is where I farm out to Claude Code. With the right info (clone a bunch of repos in a folder and know where to point the LLM, in broad strokes) you can get very far! I’d say for simple tasks, it’s set and forget. For more complex things, I tend to go through the development flow from superpowers which helps spec out what the LLM needs to be doing, followed by a run of Anthropic’s frontend design and code simplifier skills.

1 Like

For me agents supported by spec-kit is no-brainer. Straight vibe coding can be acceptable in some very simple use cases, but gets cumbersome very fast as the code grows.

OP better be edited to reduce tldr stuff and emphasize the main point more clearly.

1 Like

The post itself is a good example of why we have this (relatively hard to enforce) guideline: Guidelines - Julia Programming Language

Don’t post generative AI outputs (but direct human language translation and minor editing is ok).

and the older, slightly more enforceable community standard:

Be concise

Constructive criticism and suggestions are welcome, but high-traffic forums do not generally have the bandwidth for extensive discourse. Consider writing a blog post if you feel that you have enough to say on a particular subject.

I can only speak to my own experience, but I suspect it generalizes rather far. When I see these gigantic rambling posts filled with links, digressions, and a dozen different topics all jammed together, my eyes glaze over and I usually just move on because I find it very hard to figure out if there’s any actual signal in the noise.

12 Likes

Not sure which of the things you mention I’m responding to, but since this is a Julia forum I tackle something provocative that’s on my mind: All the qualities of Julia, that have been valuable in the past, do not translate well into the age of AI: I chose Julia because its concise, solves the two language problem and allows fast development. The downsides (TTFX, hefty runtime, no static type checking) were acceptable. With AI, the advantages of Julia diminish, while all the disadvantages are still there.

Sorry for this Debbie Downer post.

All the qualities of Julia, that have been valuable in the past, do not translate well into the age of AI: I chose Julia because its concise, solves the two language problem and allows fast development. The downsides (TTFX, hefty runtime, no static type checking) were acceptable. With AI, the advantages of Julia diminish, while all the disadvantages are still there.

I haven’t really found this to be true. Julia is one of the most token efficient languages, and I regularly use Claude to write Julia code in our 200kloc, 8 year old codebase. The downsides are mitigated by giving Claude access to a REPL, which you can do by setting up a tmux/zellij session with the REPL and pointing Claude to it.

2 Likes

Good point. :slight_smile: It was actually (in part) to get to you and others dismissive of AI. It’s been very eye-opening for me the last few days to see what AI is capable of for coding (and more, e.g. Moltbook/OpenClaw). Yes, 130.000 lines of code in two weeks is not the best metric to good software, why I quoted more of the blog post on the (seemingly highly capable/intriguing) compiler. It’s not using LLVM, an example of recreating such a library…

If you’re NOT going to review the generated code, it doesn’t matter if the generated code is Julia or other language. It can be a made-for-AI language, like nanolang (as mentioned in the first video), or Elixir with the highest score (97.5), or Kotlin, Racket, C#, Ruby, Julia (78.0) in that order, 6th highest ranked. Or the AI could choose on its own depending on what’s best for the application, or any combination of languages…

The same goes for libraries. Theo is no longer using libraries as much (see another of his videos), because the AI just reimplements them. Other’s claim you can get $10.42 an hour coding, “syntax level programming”, since you’re competing with that cost for paying for the tokens, the AI needs to code 24/7. Doesn’t mean you shouldn’t be programming with the AI by making specs (agentic coding), the only way to still be valuable; by actually letting the AI do that too for you then interview you on needed changes…

Exactly, why I’ve now trimmed it (and added an EDIT at the top).

I dropped clearly marked offtopic from the end: Moltbook’s (and OpenClaw’s) main point aren’t coding, I just find it highly intriguing the AI has it’s own social network by now, and this AI assistant, posting there, and it’s a bit related to my main AI point so I showed the AI output… now gone, is in history.

1 Like

The recent registered package AcceleratedDCTs.jl, which is a numerical package for computing fast Discrete Cosine Transform in a device agnostic way, is mostly generated by two LLMs (Claude Opus 4.5 (thinking) and Gemini Pro 3 (High)) in Google Antigravity. I and AI learned the reseach artices, reference C++ implementation code in github repo together, I guided the AI to refractor and test. The outcome is awesome. It achieves the expected performance for a generic implementation. The AI is good at summarizing huge amount of codes and numerical derivations and transform the mathematics to code. But it may be confused by small details like normalization factors (reasoning in a loop never ends) which needs human to provide explicit guidance.

3 Likes