• This is cool, I got Codex to vibe code a Forth compiler for the NES and it worked fine, but I have to say that it is decidedly not fun.

    Instead of figuring out how to solve every bug and becoming intimately familiar with with the code, I just delegate all the work to virtual interns and I sit and wait.

    I decided to write my own Forth compiler without AI assistance as a result. Side projects should be fun and for learning.

    Not judging people who use these tools, I use them too, but i just have been using them less for anything I am doing for fun.

    • There is fun in what you use something for and doing the something.

      I think there is a big divide between people who just love making different tools from scratch by hand and the rest who love being able to instantly whip up a new tool in minutes AND THEN use it to create something fun.

      I literally would never ever in my existence be interested in making a compiler if I had nothing to use it for. If I ever wanted to make a cool program which uses that compiler then whether the compiler came into being thanks to a wizard, my enjoyment wouldn't change a single bit.

      • Yeah no argument here.

        In typical tombert fashion, when making an NES game I ended up getting much more obsessed with the tooling around the project than the core project, so when I got it to generate a Forth compiler, I fell down a rabbit hole of learning how compilers work and then feeling cheated out of the actual work.

        That said, I'm not a complete luddite here; I wanted a proper comment system on my blog recently, and I don't care enough about web stuff to actually build it myself. I could have used an off the shelf thing but those usually come with a bunch of bullshit involving accounts and the like, so instead I got Codex to build one for me and deploy it and it works fine.

      • I agree there’s a big divide. I think I’m also team “let people do things they enjoy.”

        I like using computers to solve problems. I’m more interested in the problem being solved than the journey most of the time, though I’ve also been on some lovely journeys. Sometimes that means I write a tool all by myself. Sometimes it means I download an existing open source tool. And sometimes it means I delegate the creation to an AI model.

    • I think the difference is in why you want a forth compiler on the nes. Is it because you want to dig in and learn how a compiler on the nes would work? Or do you want a compiler so you can use it for something else you’re interested in doing? If your goal is the first one, then vibe coding is not going to be a good fit.
    • We need a new pair of words to distinguish these two mindsets. Digging deep, finding abstractions, solutions that would say more with less .. is one kind of fun. Other people want to see the magic happen by doing few keystrokes it seems, they call it fun, i call it death.
      • > they call it fun, i call it death.

        Are you just sitting there as if dead when using AI? I find AI work exciting, always something new to discover.

        • It's been a few months since gemini 3 and opus 4.5 were released and I still regularly have feelings of dread in me because I'm deprived of something (which I assume is the thrill and pride of being able to explore solution spaces in non stupid ways to find plausible answers on my own)

          Maybe it's the usual webdev corp job that is too focused on mainstream code and where AI is used to sell more, not find new ideas that could be exciting..

      • I mean I guess it really depends on what you're interested in.

        There are plenty of projects I have wanted to do that I don't because the "activation energy" is too high, and if I can get a machine to basically get past the boring crap then I can focus on the parts of the project that I think are fun.

  • The column-number switch on the site is a clever idea, but I don't think it works. The columns are limited to a fixed height (that depends on their number). The fixed height forces readers to scroll down each column and then back to the top to read the next.

    I'd say the site should imitate newspapers either more or less closely. In either case, first limit column height to something like 80% of the viewport to eliminate scrolling. The column switch can still select column width as a fraction of screen width.

    More closely: when the content is too long for one set of columns, split it into multiple newspaper-style pages. The reader will only need to scroll vertically through the newspaper pages.

    Less closely: use columns arranged side-by-side in a horizontally scrollable container. The reader scrolls vertically to reach the container, then horizontally through the columns.

  • Cool. I'm also working on a Scheme compiler for embedding. Bytecode VM as well as AOT compilation to Zig. 100% written by Claude Opus under my supervision and guidance. I've given it an extensive set of tests and benchmarks (r5rs and r7rs) which helps A LOT. I currently use it embedded in a modal prose editor, mostly running integration tests for now.

    https://codeberg.org/sicher/zscheme

  • > There’s probably more I built that I have already forgotten about.

    This is a big gripe of mine at the moment. I rarely have any confidence that I know how the thing works, or what additional things it does / does not do but which I expect.

    Recent example: all API endpoints should require a bearer token. Imagine my surprise when half of them didn’t enforce this effectively, 3 days later. A bearer token would work, but also providing no bearer token would also work. Over the course of time, tests were removed / things were modified to get to the goal and say “done, boss!”

    I’ll note that for this project, “don’t look at the source code” was a requirement. Things have been corrected before release, but the amount of potential foot guns is so damn high.

  • > I run into bugs all the time so it’s probably not ready for anyone other than me to use, but I’ve managed to go pretty deep (if not wide) in just a few days of work.

    Having similar experience with my experimental code generator to Rust. Every time a yet another example does not work, Claude fixes it. However, I am curious whether it would converge to a bullet-proof solution, or I have to carefully read the code and come up with proper abstractions.

    • Are you using syn to pretty print a tree, or concatenating strings?

      I think it helps having an intermediate tree where every value is valid rust code (not just synctactically, but it compiles and runs fine) helps a lot. Like an IR for your transpiler

    • if you're trying to write rust without thinking about the abstractions then yeah, its probably non-terminal. I would strongly suggest making the broad strokes yourself and letting it fill the details.
      • I have fixed the target data structures and also make Claude compare the generated code against a python reference via PBT. However, the vibe-coded code generator stumbles upon a missed clone/copy case every now and then. This is where I am less certain that it converges.
  • What does "Write Yourself a Scheme in 48 Hours" produce? From OP I'm guessing it's something less than (73% of) R7RS.

    https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_...

    • The reason it's only 73% is because I prioritized fun stuff like self hosting and platform binaries. I think finishing off the standards would only take a few more hours (except eval which I don't plan to do).
      • That wasn't a dig at you, I was just genuinely wondering what Write Yourself produces.
        • Yeah, I didn't take it that way, just thought it was worth clarifying that this isn't a case of AI hitting a wall or anything like that, I just went down other rabbit holes.
  • Quickly building "near production level"? Are we talking about this Matthew Phillips?

    https://docs.astro.build/en/guides/build-with-ai/

    What a happy coincidence!

  • detractors of AI claim this stuff is in its training data so it could be a copy which is valid. The crazy thing is the fact that it can definitely build something that does not exist.