The Standup with ThePrimeagen - Casey Muratori's Origin Story
Episode Date: August 14, 2025🔗 Sponsored by Code Rabbit https://coderabbit.link/primeagen-vscode #sponsored https://twitch.tv/ThePrimeagen - I Stream 5 days a Week https://twitter.com/terminaldotshop - Want to order coffee o...ver SSH? ssh terminal.shop Hosts: @ThePrimeagen @trash_dev @teej_dv @caseymuratori For more about Casey: https://www.computerenhance.com Become Backend Dev: https://boot.dev/prime (plus i make courses for them) This is also the best way to support me is to support yourself becoming a better backend engineer. Great News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen Kinesis Advantage 360: https://bit.ly/Prime-Kinesis Discord https://discord.gg/ThePrimeagen 00:00:00 - Intro 00:01:12 - Running Galaga at compile time 00:03:09 - J AI 00:05:36 - The Ginger Bill Business model 00:08:24 - OCaml + Rust features 00:10:14 - Back on topic 00:15:11 - Handmade Hero and inspiring others 00:19:03 - Conferences
Transcript
Discussion (0)
Charlie, hey, what's the name of the stand-up today?
The stand-up.
It's always the stand-up.
Welcome to the stand-up.
It's the same thing every time.
We don't change the title.
It'll be Trash's snack addiction right now with his microphone on.
What are you doing?
I'm getting my 9 a.m. Doritos.
Hashtag ad.
You guys don't get some.
Oh, yeah.
My 9-A.
My 9-A.m. chip break.
Could you tell us a little bit about the flavor, or dare I say, taste sensation that you're
experiencing right now.
All I'm saying is that I didn't make, I don't ever eat breakfast, but when I'm sitting
like in a meeting, I just have to snack.
Okay.
I just don't know.
And then I just, I bought these yesterday after dinner.
I got party size.
Because it's always a party with trash.
Yeah, yeah, yeah, yeah, yeah, yeah.
Yeah.
Anyway, sorry, I forgot to do the intro.
Hey, everybody on today's standup.
We're going to be listening to Casey.
And then trash just left.
Rumed my entire view.
Thank you.
Today we're going to be listening to Casey.
Hey, Trash, he's back.
We're going to be listening to Casey.
Give his origin story.
Very exciting.
Casey, take it away.
So the origin story is not even going to be three minutes.
I'm going to have to pad this thing.
What happened was that Jonathan Blow started, I don't even know you'll have to ask him.
He decided to stream his compiler.
a demo of his compiler.
That's what actually originally happened to start it
because I don't know if you remember,
but he made like the J.A.
He did a demo of J.I really early on
where like you could play Gallagher basically
at compile time.
Oh, nice.
Explain that a little bit more.
I better because we got to get,
we got to pad this out to 30 minutes.
So one of J.A.I.'s
big original features that now like everyone has copied,
albeit poorly, is that
anything that you do in the language
can be run at either time.
It can either be executed at compile time
or it can be executed as like,
or it can be compiled into the program
and executed there, right?
And so he demoed that in literally like 2014.
Like that's how far ahead he was of everybody else.
And that, because he wanted to demo that,
he had a game and what you could do is
you could compile the game with JAI,
but the act of compiling the game would play the game,
then the number of, like, enemies you killed before you died,
and when you died, it would stop and finish the compile.
That number would get compiled into the executable that it actually produced, right?
It was just a cool demo.
You just try to demo the fact that you could do anything at compile time that you wanted
to show how, like, robot.
the meta-programming was going to be in this thing.
So he did a demo where he showed that and lots of other things,
like lots of other J-A-I features that he had implemented in the first round of J-A-I stuff.
Are you calling it J-A-I or J-I?
J-A-I?
I was wondering about that too because I was thinking,
man, he really was kind of way ahead of his time.
He was putting AI into everything before it was cool.
That's a good point.
If you called it J-A-I.
Yeah.
Jonathan A.I.
John's AI.
Yes.
But no, I don't know that he realized.
Well, the reason that I don't think that he realized that was, yeah, because he didn't,
you could run this on a single machine instead of having to have a data center full of like 100,000 in Blackwell GPUs.
Like, this was pretty normal behavior in 2014.
But then how do you make money?
Well, that I think John would like to know how to make money from making a language, because most of
Most of the time nobody really makes money for making a language, right?
You do all this work and you don't really make money, so it's often like some of the thing.
I mean, like, for example, Bill Hall, like, he kind of works with Jang effects, which uses Odin, right?
Like, you always have to, it sucks.
Like, it would be cool if when you made a cool language that that was actually going to be payment in and of itself.
But usually it's not because that's just the way the industry has shaken out, which of course also means you don't maybe get as much work on languages as you would like, because people aren't being paid.
to do it, right? Or they're getting paid to do it only pretty far after the fact when like some
company, you know, decides that maybe they're going to fund this thing or whatever. So it's kind of,
it always has to find this sort of like, like a secondary funding model, right? Like that's not
primarily you're not, you're not, you weren't just paid because you made a language. You have to be
paid because the language is used by a company that's doing something or whatever. Developers,
are you tired of code reviews that just say looks good to me or here's seven things I need you to
change that are irrelevant to the PR?
We'll meet CodeRabbit.
AI reviews right inside your editor.
Starting with VS code, cursor, and windsurf.
Sorry, no VIM yet.
Hit review and bam.
Outcomes feedback even before you open a poll request.
CodeRabbit can help flag bugs that you're vibe coding with your LLM bots missed.
And with one easy click, it can send all the context back to your favorite agentic tools for
quick fixes line by line.
CodeRabbit offers a generous free tier with up to 50 code
reviews per day.
Grab the extension now at code rabbit.
Dot link slash primogen dash VS code.
Links in the description and ship cleaner code today.
So is Ginger Bill's model like the best model for making a profitable language
is to just start a company that you solve a problem by writing a language for first?
Which sounds very hard.
I don't know.
I mean, you should ask him, have him on the standup.
But I would imagine that it's a pretty good.
good way. Like if you have a company like Django FX that wants to do some cool stuff and they're like,
we kind of just don't want to be shackled to like C++ anymore, we want to have the flexibility to
like get language features in a timely fashion that are well designed and don't go through a committee
that will make them terrible, then, you know, if you've got someone who you trust who you can work
with to do that, I think it would make perfect sense to pay them as an employee to just be the
language guy, right?
And, you know, I don't know
how they all feel like this all worked
out, you could ask them, but I'm imagining
they're very happy. They have very successful products
written entirely in Odin.
Bill has really liked
making Odin, so I think it was
a win-win for everybody,
but, you know, you should ask him.
Have him on the show, see what he says.
Jane Street is doing this basically, too.
Like, they've got their own fork of oak camel
and everything, and they just release their own
like now it's more
accessible for other people
to try out their fork.
It was pretty accessible before,
but they like released it
with a bunch of language features
that they hope
get put into OCamill,
but they're also like,
we don't really care in some ways.
Maybe, sorry,
that's probably like a little bit.
Reading between the lines to the,
to the Jane Street folks,
because they do try,
but like they have a whole team
working on the compiler,
doing crazy stuff,
making it awesome.
What's it called?
Like for them.
What?
What's it called?
It's called Ox Camel.
Because it's like, it's introducing, okay.
Yeah, it's introducing a bunch of, like, ideas.
Oh, that the lifetime ones?
Yeah, yeah, related to like, this idea of oxidizing O Camel, like, bringing some of the features from Rust into O Camel, but in a, like, in a convenient way.
Yeah, yeah, right.
It shouldn't change, like, the base way that you write O Camel, but then when you want to try and do something where you're saying, hey, like, let's allocate less.
Like, let's not get this to the garbage collector.
we're going to have some proper ownership, semantics of these things.
You can specify those and it just makes,
then you don't have to switch to a new language, right, to write the other part.
So it's very, it's very cool.
They're using it a lot because they have to write fast code to trade things faster than
other people, I guess.
I don't really know what they do except like it seems like they-
FPGAs and O Camel.
That's all I know.
They do have a thing where you can program FPGAS with O Camel, yeah, called Hard Camel.
But I think they just have a big printer inside where they print money.
Like, I'm not really sure.
I'm not, that Casey, that's not a joke, by the way. That's a real thing. They have that.
I kind of want to go look at this now because I would have thought that O Camel would, I mean, are F.P. Bros.
Furious that, like, people are suggesting that you need features from Rust to make O Camel better?
Like, what, how did that go over?
I think it's good. I think it's good. I think people in the O Camel community like it. I think it's pretty cool.
Yeah, I mean, O Gamel's much more pragmatic than, like, Haskell, bro.
right they're kind of like so and it's and all of the people like most interested in it i think are
like it's cool that jane street makes money and we're like more confident okay and well we'll still
be a thing in five years like okay because you know a sponsor now right it's got yeah i mean it has for
a long time right but it's kind of nice to see like oh they can push forward like their vision of
some stuff uh and see what happens i don't know i like i think it's i think it's very interesting too
because most of the time i feel like when i write rust i really just want to say like
does this thing live in this function or does it like escape the function right global or local
like ownership and that would simplify like a lot of very painful things in rust if you couldn't
specify like in between lifetimes like oh it lasts as long as like the outer scope of this function
attached to like this right like that's where a lot of really painful lifetime semantics come in
but like for okay well it's like oh well we can just say like the garbage collector will handle it
if it escapes this region.
Otherwise, we're going to basically like stack allocate it.
Not exactly, but like close.
And then we'll be able to like free those really quickly and easily.
So it has a lot of cool features that are not like just straight wholesale copied from Rust.
But that I think will improve the language like in terms of making it go zoom, zoom.
And like multi-core safe stuff too, which is nice.
Dan, that's crazy.
Casey, we got to get back to your.
origin story. We're so far out of the potty right now.
But that's it. I mean, like, literally, if you guys don't keep doing that, there is no stand-up.
Because we are now, we have now finished a minute and 30 seconds of the three minutes that I've got.
So the next thing I say is going to be the end of the story.
I'm ready.
Don't worry.
Don't worry.
We got something for you.
So John did that.
He did that, that demo.
And there were maybe like three, it was like three streams or something.
He did like a series of them.
So it wasn't really.
a recurring show, but it was kind of like, oh, John's kind of streaming now, right?
Wait, is this on Twitch?
It was.
It was on Twitch.
And then he posted them on YouTube afters, but it was.
It was on Twitch.
And so at that point, because people knew I had worked on the witness, because I used to publish
this little blog called Witness Wednesdays, where I would talk about something that we were
doing on the game.
And people knew.
people knew that and they asked me when was I going to stream on Twitch?
Right?
They were just like, oh, John's streaming on Twitch, which he hadn't like committed to or anything.
He didn't start the John show, but he like, he had enough on Twitch that kind of seemed like,
oh, okay, John's just going to be doing streaming now.
Like, I think he maybe even did some when he just was working a little bit, right?
So he was like the person who started that whole thing was him.
And so then I was like, all right, I guess I'll try something.
there you go
what did you try though
handmade hero
which is
yeah you gotta go
I know what it is
but
I mean I just tried like
doing anything well
I'll just start making a game
I'll do all the things
that we normally do
right I'm like well make a platform layer
I'll you know make a
rendering back end
I'll you know show out of load
bitmaps and that stuff
that's that was it
so I just
what
did you end up making the game
all the way through
no I mean like it's
it
as with everything, I cannot design games.
I am so bad at it.
So basically, like, really, you can only count on me to make engines.
That's all I know how to make.
If that makes sense, like, I kind of need somebody else to come in and do whatever the game is.
And then just tell me what you need, and I will make that for you, right?
But, like, game design stuff is just not my thing.
