10 comments

[ 0.22 ms ] story [ 27.7 ms ] thread
LLM-based coding is enabling so much! The crazy weekend project now can have compilation to native code and web assembly, allow server-side or client-side rendering, manage multiple types of persistence, include adaptive compression, and do all of this without breaking a sweat.

It's scary but I love it.

I didn’t see anything about LLMs here.

If you’ve never written or worked in a Forth-like language, it’s not a hard system to bootstrap up. If you’ve done it before and know assembly, you can even get something that compiles to (stack-heavy and pretty unoptimized) native code in essentially a weekend. No LLM needed.

Forth-likes are almost magical in ways that are hard to describe. You start with primitives and literally build the language out of them. The interpreter and compiler are two different modes of the same REPL loop.

It’s just a very different paradigm than most programmers know.

Fuck LLMs. People should focus on actually learning stuff instead of destroying their brain and environment with LLMs. Especially a Forth is really doable.
> I like how weird it is. I might use it for my site, who knows?

If there's a place to use a weird and fun language it is certainly one's own personal blog. Sounds like a great opportunity, I think you should do it.

> Something like this:

> : h1 ( s -- ) "<h1>" emit . "</h1>" emit ;

> "Hello, World!" h1

So, what’s the difference between . and emit? It seems both take a string and output it to the HTML of the page. If so I don’t see why that couldn’t be

  : h1  ( s -- )  "<h1>" . .  "</h1>" . ;
We also have:

  "2026-05-21T14:00:00Z"  "May 21, 2026"  dt-published
where, I think, the idea is to always have the two strings consistent with each other. If so, why require the blog writer to do that conversion?
Forth's postfix model is genuinely underrated for DSL design