Tech Over Tea - Creator Of Odin Programming Language | GingerBill
Episode Date: May 29, 2026Today we have the creator of the Odin programming language on the show, Gingerbill to talk about the creation of the language and eventually have some fun talking about his page being removed from Wik...ipedia.==========Support The Channel==========► Patreon: https://www.patreon.com/brodierobertson► Paypal: https://www.paypal.me/BrodieRobertsonVideo► Amazon USA: https://amzn.to/3d5gykF► Other Methods: https://cointr.ee/brodierobertson==========Guest Links==========Twitter: https://x.com/TheGingerBillWebsite: https://www.gingerbill.org/Odin Lang Website: https://odin-lang.org/==========Support The Show==========► Patreon: https://www.patreon.com/brodierobertson► Paypal: https://www.paypal.me/BrodieRobertsonVideo► Amazon USA: https://amzn.to/3d5gykF► Other Methods: https://cointr.ee/brodierobertson=========Video Platforms==========🎥 YouTube: https://www.youtube.com/channel/UCBq5p-xOla8xhnrbhu8AIAg=========Audio Release=========🎵 RSS: https://anchor.fm/s/149fd51c/podcast/rss🎵 Apple Podcast:https://podcasts.apple.com/us/podcast/tech-over-tea/id1501727953🎵 Spotify: https://open.spotify.com/show/3IfFpfzlLo7OPsEnl4gbdM🎵 Google Podcast: https://www.google.com/podcasts?feed=aHR0cHM6Ly9hbmNob3IuZm0vcy8xNDlmZDUxYy9wb2RjYXN0L3Jzcw==🎵 Anchor: https://anchor.fm/tech-over-tea==========Social Media==========🎤 Discord:https://discord.gg/PkMRVn9🐦 Twitter: https://twitter.com/TechOverTeaShow📷 Instagram: https://www.instagram.com/techovertea/🌐 Mastodon:https://mastodon.social/web/accounts/1093345==========Credits==========🎨 Channel Art:All my art has was created by Supercozmanhttps://twitter.com/Supercozmanhttps://www.instagram.com/supercozman_draws/DISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase we may receive a small commission or other compensation.
Transcript
Discussion (0)
Good morning, good day, and good evening.
I'm as always your host, Brodie Robertson.
And today, I didn't think about how I was going to do this intro.
So, welcome, Ginger Bill, creator of things and the Odin language.
I didn't think this one through very well, so we're just going to wing it.
Introduce yourself further from that, and we'll go from there.
Yeah, well, thank you very much.
Yes, I'm Ginger Bill.
Thank you very much, Brody, for inviting me on to this potter.
cast of yours. That's very fun. But yeah, I'm the, I'm Ginger Bill, the creator of Odin.
I also work at Django Effects, which products such as Embergen, Lou Gen, Liquogen, and Geogen,
which are all real-time simulation software for the game and film industry is the best way of
describing it. And I guess half the reason why you got me on my show is mainly for the
controversy around about the Odin Proa language and Wikipedia. Well, that was a good excuse to
talk to you. I'd be interested to bring you on for a bit. Oh, that's wonderful, yeah.
So I guess we didn't do anything.
This should get me on, wasn't it?
Yeah, yeah.
It's a good segue to do it at least, if nothing else.
So I guess for anyone who might be completely unaware, it's probably a good place to start.
What is Odin?
Odin, it is a C alternative for modern high-performance systems languages.
So it's a program language that does this, so...
How do I put this?
Is anyone to ever use C or C-L-C-Bus Plus and you absolutely hate yourself when you're doing it?
you're doing it.
I would it might be for you.
It might be the best way of describing it.
So when you say C alternative, what are we actually meaning by this?
Yeah, so C alternative is, in this particular case, means it is a C light language, so it has a
very similar approach to programming.
It's an imperative procedural language, which means you just write procedures or some people
say functions, but I'm just being old fashioned.
And that's the case.
That's the case. But in general, like, when I see a light, you've got manual memory management everywhere as well.
So you allocate your things, you free stuff, your manually, all that a lot.
You have control over the memory layout, how things are accessed, how things are just in general, that you have complete control that you can see with C.
But because it's an alternative, like modern systems, it is more designed for modern computers.
We're not pretending now that they're on a PDP 11, which is what C was originally developed for.
Of course, it's evolved over the years.
And people still use C to this day.
I still use C and C plus, obviously.
But Oden is trying to be like, look, I've had frustrations with C,
and I've started Oden, God, nearly 10 years ago now.
I've got time flies.
But yes, that's kind of what an alternative means in this case.
So what are some of those frustrations?
Why would somebody want to use a language like Oden?
Or, you know, whether you want to talk about the other languages that are out there as well
that are in a similar sort of vein as well.
What are those issues and frustrations with C?
A lot of it's just, a lot of the very little amount of things.
So C in general is a very productive language.
It is surprisingly a smallish language.
I'm saying smallish for a reason,
because actual C, yeah, small,
but C on the actual compilers is actually quite big
because you've got all the extensions, all the extra things on top of it.
But it is a very productive language which does so much.
And you can get by doing anything.
in it. Literally you can program anything in it
from an operating system to a game to a graphical
application to a web browser.
Like literally anything you want you can do in those
languages because it is that
it's low level enough that if you've got control over memory
but it is a high level language as in I'm not writing assembly.
Right.
Now, why would I sort of make that mistake
when they talk about, when they talk about C, they're like,
oh, C is a low level language like, no, no, no, no, no.
C abstracts away really far
from that machine code.
Yes, yes, you can write it and yes, it is lower level than a language like Python, for example.
So it kind of depends on your reference point.
But everything that is not assembly is a high level language, pretty much.
Yeah, pretty much.
And a lot of people may not find that also a bit confusing.
Like, how is C a high level?
I have to do with memory manually.
And it's like, you'd be surprised how little you actually sometimes have to.
If you actually design the APIs and libraries correctly and all the nice ones,
it can be very high level.
That's the actual surprising thing I always found before even started Odin.
I was trying to figure out how to make my C experience even better.
And my realization was that a lot of these high-level scripting languages like Python, as you explain,
they just come with batteries included.
And everything is there already.
And with C, nothing comes batteries included, really.
and the C standard library is dreadful,
and you pretty much want to replace it straight away.
But again, that's one of the gripes, right,
is the C standard library is dreadful.
But again, that's just a library thing.
What about the actual language itself?
But a great example of this is that,
let's take some minor things.
Like C doesn't actually have a proper array type in it.
And what I mean by that is all ray types
get demoted to a pointer.
Which means you've doing a pointer arithmetic all the time.
You've got arrays with no body.
Bounds checking, which means you've now got out of bounds errors.
Anything that's like this called spatial memory safety is gone out of the window.
There's this, again, this overload now.
A pointer could be also in a race.
There's this separation, merging of concepts.
The type system has got many different, like, implicit conversions all the time because
Oden, not Odom, C is a very weakly type language.
So there's loads of implicit conversions going on, which can and will bite you in the
house. So it is
but it's just loads of
little things as you go through with the language
that they just start to annoy you
and anyone who has a long term experience with
C but also had experience with the languages
will know those problems
and with Odeon the whole point was I'll try
okay can I try and solve that problem that problem that problem
and go literally systematically
throughout it and like how do I
redesign to sort get around these problems
whilst still feeling like
C not being directly
different like save something like rust
Rust is trying to solve other sets of problems
like for instance temporal memory safety as well as spatial
and do it through other means
but it doesn't feel like C when you program in Rust
because Rust isn't trying to be that
which is fine that is absolutely fine
it's just not trying to do that
So a lot of
one thing that often come up when we talk about
anything involving C
and I'm sure a lot of these people don't actually write a lot of code
in their entire life they don't they've never written C
in their entire life but they'll say things like
oh, well, these aren't problems with C.
That's just a skill issue on your part.
Yes and no.
So there are skill issues, obviously,
when it comes to anything within programming in general,
but there are things where it's like, yeah, the language,
the language hasn't got enough protections in it,
which you'll catch your mistakes.
And by the way, you'll make mistakes no matter how skilled you are.
Because mistakes can come from anywhere.
They can even come from dodgy APIs, dodgy libraries,
is even your past self,
who might have been, I don't know,
intoxicated at one time
and you've just done something wrong.
But I think this is half the problem
is that I'm not,
but I'm also not saying
that you need a full-on safety net
when you're doing with C
because a lot of time you actually want that control
and that one safety,
that is kind of how the thing,
it's the thing you're doing,
is that unsafetyness.
That's correct English, obviously.
Yeah, yeah.
But, um,
on safetyness.
I'm making up new words now.
Oh, they'll work it out.
Sorry for people who English is not your first language.
But this is kind of thing.
So there are some issues with skill issues
because if you're not used to doing that sort of programming,
you'll expect more high-level constructs.
Like, why can't I just allocate an array on the fly
and do all this magical manipulations with all these hash maps and stuff?
And it's like, yes, he hasn't got any of that.
And that can be a frustration.
And I completely understand it.
But at the same time, it's not...
When you deal with C and I recommend anybody,
if you are a programmer to learn C,
even if you don't use it as a day job or anything like that,
just to learn that style of programming.
Again, there's loads of different languages to learn,
but C is a great way of learning that sort of style of programming.
You are, you're going to start thinking differently.
It's the best way of strength.
Thinking about how you solve a problem differently.
Also, thinking about actually, how do these operating systems work?
Because they're all written in C or C plus plus for the most part.
So it's kind of very useful to understand that.
And also it kind of forces you to understand how data structure
work as well directly.
Yeah, I think there is this,
there is this desire in programming,
especially now with AI tooling being a thing,
to produce a thing really quickly,
to produce a website,
to produce an application,
and sort of jump over those initial steps of,
like that foundational computer science,
where you really start to understand
just how do things fit together?
Like even just basic things.
Like, if I'm going to use a hash map, what is a hash map?
Like, not just, oh, I can put a key in here.
There's a valid.
Like, how does that actually work?
Yeah.
And it's something which is going to be a problem with AI in general is that the people
already know these skills and the ones that also use AI,
they're going to be fine because they already know the foundational stuff.
But if you're a new programmer and you're skipping straight to the AI stuff in general,
Oh goodness, you're not going to know how to architect anything.
You're not going to understand how things work.
And when things go wrong,
you're just going to be asking the LLM like,
can you fix this please?
Make no mistakes.
Right.
It doesn't really work.
And again,
I've still even used,
I try using LLMs from time to time.
Look, I'll always try out something,
knows, see how it works,
once a philosopher and all.
But it's...
But sometimes it's like,
I know it makes mistakes.
I know exactly where it's gone wrong.
but I know why you have to do this.
They're never going to be perfect,
but they're going to be better than nothing sometimes for some people.
Some people are also like they're not interested in whatsoever.
But again, if you don't have those foundations how they work,
you're never going to actually become a very good programmer.
And there's always going to be a complete, literally cap on your skill.
And I recommend people learning, again,
as many different ways of thinking with different languages,
but one of these especially see.
I think there's also a value in sort of taking on
interesting basic forms of complex projects.
So one idea often here is like a way to learn a language
is writing a basic HTTP server, right?
It's not something you're ever going to use in production most likely.
You're never going to deploy it.
But it gives you an understanding of how do these messages get transferred around?
Like what is, what is that actually doing?
And even though, even though you're not going to use,
user, you have a better understanding of how that fits together. When you know how that fits together,
that can give you a better understanding of how other similar sorts of things might fit together as well.
Yeah. Again, HTTP 1.1 server is a great example of this because you'll learn how to use sockets,
for example, learn about what TCP is. You'll learn about how to richly read the header, how to do the
basic text passing within that header as well. There's a lot of skills you actually have to do there.
And that's just reading as a client and then learning how to do that as a server, is it
even going to be more fun. And there's a lot of fundamentals which, once you understand those
fundamentals, it's not magical anymore. And you can also just piece things to get it better. And you go,
oh, this is how this works. Oh, I could do this. I know how to, this now works here. And you learn more
transferable skills as well. Because that's also another thing is if you, you're asking LLM to do
things, you may not even know how to ask it the right question. Right. And that's an actual
real skill as well. It's even, regardless of not even LLM, if you don't know how to ask, ask the right question,
for the problem you've got because you don't know enough of your skill set.
Well, you're screwed.
Well, it kind of puts you into the position.
Have you seen that?
I had that picture of like, this is what the client described.
This is what the engineer thought they made.
Or thought they wanted.
This is what the DevOps person that they wanted.
And then at the end is like, this is what the client actually wanted.
When you're communicating with an LLM, you're effectively in that position of the client
trying to explain what you actually want to build.
trying to interpret, and there's a skill to that as well, right?
I think there is value in being able to break down and explain a problem,
but I think that is a different skill from generally being able to engineer a solution.
Well, yeah, because, again, engineering is a skill in itself.
And even asking those right questions, for instance,
if you've got a client that's there, I want you made this piece of software,
please.
And you just keep asking those questions.
So what do you mean by this?
Because most people aren't very good at communicating what's in their minds.
Yeah, yeah.
Telling you in that.
Because they've got, you know what it means.
Just say this.
And like, yeah, but what do you mean by that word?
And just keep breaking it down and breaking it down and breaking it down.
And then sometimes you're like, okay, I've got this prototype and you show them.
And you go, that's not what I wanted.
It's like, okay, so what did you want?
And you explain.
They go, oh, you mean this.
So it's this repetitive, repeating process that you've got.
And you've got to do back and forth with what the purpose of what the person wanted,
even if that person's you, by the way, because I'm not.
you have to do this back and forth conversation with yourself.
Or if it's just literally like, okay, understanding what does this person think?
How do I engineer this?
Is it even possible?
How much time is it can take?
You've got all this.
And it's a proper problem solving task.
For most programming stuff, it's not really engineering for most people.
But for some people, it really is a proper engineering job when you're actually dealing with
systems level programming and going, oh, okay, I've got to think about how to optimize this,
deal with this, how does it interact with this system do this?
It's, oh, my goodness.
And you've got to worry about how this all again, it's going to be architecting.
and engineered together.
And this is before even the skill of LLMs,
and even with LMs,
ELMs, I'm going to help you with that
because they can't really help with you yet,
at least now yet,
at least in the current iteration this year of 2026.
Yeah, who knows, look,
who knows where we'll be in like three years,
five years from now?
You can make any sort of prediction.
You're going to be wrong.
I'm not going to try to.
I'm just saying at the moment
Yeah, pretty much
that's the safest bet to make
So, I doubt it because there's other things
But it's just not getting to that discussion
That's probably a little bit too philosophical at that point
Sure, like what is it mean to
Think like a human
Like what is there something special
About human thought, creativity
It's not even that
It's just, oh, it's not even that I was going to get into
But sure, just more of a lot of people
going to be autistic and a lot of programs are autistic and they're going to be just talking
with another autistic machine so it's going to be like you've got communication barrier that's you know
what fair point actually um so jumping back of it when we're talking about um issues with c uh we kind
of got sidetracked i'm sure it's going to have it a bunch of times um that's be fine
how does odin go about trying to resolve some of these issues with c i assume it has a
more
complete
standard library
but what
like what exactly
does the language do?
It's loads of little things
all put together
this is the thing
this is actually
one of the big issues
I've had been marketing
Odin is in general
there is no one killer feature
it's just literally
an improvement by a thousand little things
and it's gone step by step
how to improve those
for what someone
and also try and still feel like
see
weirdly enough
what I kind of when I started
Odin
is I didn't have a start with like something exactly like to see and then try and prove that.
I kind of started from Pascal.
Okay.
Okay.
Which sounds confusing to people.
Like, what do you mean?
I might think things, but you don't see beginning and end anywhere nowadays.
It's just color races.
But when many people see Odin, they may go, well, looks very similar to go.
And the go-heel, yeah, looks a bit as got like I go.
Well, part of that reason is goy is actually a Pascal as well in disguise.
And it's not surprised because one of the main designers is Robert Grisma.
Robert Grismer's PhD supervisor was Nicol.
Lazavit, the creator of Pascal.
So you can see the lineage of all those ideas there.
You've got Rob Pike has also been dealing with those sort of people.
You've got Ken Thompson.
So it's kind of like, look, they've got kind of a Pascal style foundation,
plus trying to make it still feel like.
And that's kind of what I've done with Odin.
But within Odin, we've gone even further and gone like, okay,
well, this is the stuff we do in C.
Can we try and map this in a better way and deal with those specific problems?
And a lot of also the design that I've come about is also trying to think like,
okay, what are the problems that people actually have?
Can we then try and solve those specific problems?
Rather than trying to think of a generalized one,
like, okay, here's one kind of feature in a language,
which could solve multiple than, not very great, but multiple,
but Odin's more like, right, is that a common problem, right?
Give that a good solution.
That common problem?
Yep, give that a good solution.
And then see if there is an overlap,
but if not, just keep them separate.
So Odin's design is very, in that sense, conservative.
It is not trying to be come up with new ideas.
is trying to say, look, we've got known problems with known solutions,
know things how actually really work,
and then try and make all of that coherent, cohesive,
and consistent within the language itself.
So, again, nothing in Odin is that flashy in the slightest.
And I think the newest ideas in there probably come from, like, 20 years ago.
I know you put out a blog post like two years ago
on marketing the Odin language.
And I can see what you mean there, right?
Like, there are these languages.
First one that comes to mind is something,
like V, for example, where...
Yes.
There's this specific thing it is marketed for.
And the problem with marketing a feature is that...
For the people that want to be critical of the language,
that is kind of the stick to beat it with, right?
And this comes up a lot with Rust when people talk, you know...
Even though Memory Safety is not like...
For anyone... Memory Safety is not a unique thing to Rust, at all.
Not even remotely.
But because it is...
something that often gets talked about around Rust, it's something directly mentioned on
like the Rust website, when anything is not the definition the person looking at the project
has for that feature, that's immediately a point to criticize it on. Oh yeah. And again, taking
Rust as an example, Rust, I won't say it's unique, I always call it say the word novel, right?
its approach to memory safety
Oh sure, it's approach.
Yeah, no, yeah, absolutely.
Its approach is a compile time
approach to memory safety, rather than most languages use
like garbage collection and such.
This is now doing it compile time.
So it has both spatial,
which is like out of bounds and stuff, temporal,
which is then clearly
over time,
different types of memory safety.
And then it can prove that at compile time.
That's kind of the aspect of us.
And not just that, it's also a compiled language.
So people like Rust for that particular purpose.
And if you need that kind of thing,
then Rust is probably a very good language.
I want to say it's great,
because I have many other gripes about Rust.
But that general idea, good.
But now my thing I'm going to annoy a lot of Rust programmers with
is most people don't need that level of memory safety at all
for most of their programs.
So if you don't actually need it,
maybe some of the language is a better option for you.
It could be Odin.
Could be any other language.
I don't particularly care.
Whatever your problem is,
that's the language you should try and find,
find the language that's right for your problem set.
Mm-hmm.
You know, that right there is a really important point.
People get really defensive about languages and they want to turn it into like this,
this team match thing.
And I kind of get it when you're talking about languages which serve a very similar function.
But at the end of the day, right, like, at the end of the day, they're all sure and
complete languages.
You're going to work out the problem in them anyway.
Yes.
some of them might be better at certain different things.
But at that point, just test them.
Like, do a small case, see what it's like.
It may not even necessarily be the performance of the language.
See which one you just feel more comfortable writing.
Like, what feels better to you?
Yeah, I always recommend that to people.
I always say, like, oh, why should I use it?
I'm like, well, give it a go for a little while to see if it meets your needs.
If not, try some other languages out,
because you may actually find out that, oh,
I've tried Odin, didn't like it, but then I tried the others and went, actually, I didn't like them even more.
So, or it might be the other way around.
Or it might be literally, you loved Odin and it's great.
But I think for a lot of people is, when I say try something smaller, I mean, you could probably probably try a language, try and make a little project in it for over a week.
Don't just try it for a couple hours.
Because sometimes it just takes a while to get into that groove of freaking hell like, oh, do I like this or do I not?
And but if there are languages out there that are in your niche, whatever, it's like,
if you're looking at, I can't say my age now, but Python, Ruby, like, okay, they, I don't like,
it's fine, you know what I mean?
Like, they're just like, they were, they're always back in the day like 20 years ago.
I'm not that old actually, by the way, but it's just I remember when I first started programming,
this, I remember seeing all the stuff.
And they were like similar niches because you can make website backends with them,
and they're both scripting languages and very object-oriented.
And it's like, well, just choose one and see if you like it and try the other one and see
if you like it.
And then there you go, problem solved.
It's not a religion for goodness sake.
But many people read it like one.
And please don't.
I think it's because of how much investment it takes to,
especially learning your first language, right?
Once you've learnt one,
learning additional ones after that is,
unless it's some weird...
I'm talking about Haskell programmers.
Unless it's something like Haskell,
something fundamentally different from a model you already know,
No, for the most part, it's a pretty easy thing to jump between language and language.
Syntax might be weird. Yeah, it might be weird. Sure, absolutely.
But the fundamental programming concept, and this goes back to what we were saying before,
this is why it's important to understand how things work,
because when you understand those lower-level concepts,
you can apply those ideas to any other language with relative ease.
Yeah. But again, it's as you're saying, like, if you know one imperative language, like an imperative procedural language, you can kind of understand the way of thinking in that other language, not fully, because to master any language, like, okay, I'll put this, Dutch and German may be very similar languages, but they're not actually the same language. So it's very much like you have to kind of like, okay, how does it work in this language?
Right, right.
But again, as you're saying, something like Haskell,
it's a very good example of language,
which you have to think differently with it.
Now, I wouldn't necessarily recommend that one myself,
but maybe something like, I don't know,
I'm trying to think,
O Camel might be a good example for someone to try something of that realm,
like an ML language,
and that's a way you can just think of a different way of thinking.
And you may learn, again, different ways of thinking
that you can actually apply to other languages,
and you may even prefer that stuff.
Yeah, I recommend people trying different styles,
different languages.
Like, again, try to say,
try something like O'Camel, try something like, again, an SQL language, try something like, I know an APL of some sort.
There's so many different things away, but again, once you do different ways, you actually start thinking differently about how a problem solve fundamentally.
But yeah, as you say, if it's within the same area, you can, I'm not saying you can easily go between the different languages, but you get the general gist and you can probably learn it quicker.
Yeah, you're not going to like immediate, especially, you know, we talked about Rust a few times.
the Rust memory model is going to throw you.
There is going to be basic data structures
which do not work like you would expect them to
because of the Rust memory model.
That is just the way the language works.
But outside of that.
But outside of that.
But even then, the thing about Rust is
it's technically an ML in disguise anyway,
but it's a...
But it is.
It's just meant to look like a C++ language
but it's ML semantics quite everywhere
which for better or for worse
again your preference
sure there's no like perfect language out there
guys
so when
Oden got
when did Oden get started firstly
July of 2016
okay
it started just a hobby project
wasn't really serious
but yeah nearly 10 years ago now
as the Tyra recording
okay
Well, why did it get started?
What initial problem was it trying to resolve?
Were you just bored and wanted to make a language?
Right.
I'll kind of start from the beginning.
So before even started in language, in 2015,
I kind of gave myself New Year's resolution for 2026
to see what I actually wanted from a language
because I was just, again, I did loads of projects,
hobby project was working in C-Bus Plus.
I think I had a job at the time was doing also C-Bus Plus stuff.
And I just kind of got really frustrating.
with it. So one of the new year's resolutions I had was just start with C and just use C for my new
projects, like hobbyist stuff, and see what I wanted. And very quickly, I realized I didn't need much.
Like, I didn't actually need many features. I could get on with quite a lot. But then I eventually
started like, okay, so C's still a little bit restricting. So I kind of made like, I need to make
my own core library, like my own standard library for it, which released the Gb.h.H. header files,
which I like released in the public domain. I know many people have now.
taking that code in their own libraries because he was public domain so I've seen my code in
random code base and go I wrote that um but that was one thing and then eventually I said look
c's not enough so I eventually kind of made my own C compiler to add some extra features to it so I
added slices which are like array a pointer plus the lengths with array so I've got bounce
checking I added a defer statement to the language and then eventually I started realizing like
I can't improve C like C has got the foundations are so broken
so broken, like so broken, I'm gonna have to start my own language.
So I got drunk one night after the pub and came on and started streaming on Twitch
and started making a language.
And yeah, the arrogance of when you get drunk.
Now, Odin's not my first language, but, and it's not even my last either.
I've done many other languages after this now, even small ones or teaching ones and stuff
like that.
But yeah, it was a, yeah, that's kind of how it started.
But then it just, I kept after about a couple of months.
I went, actually, this might be a decent language.
And I think within about five months, I had, like, most of Odin fleshed out.
It's just taking this next to ten years to get the polish.
And Odin is effectively done now.
It's just we haven't officially released 1.0.
We're just still polishing things out, making sure things are there, and then eventually
we'll announce it, which won't be far off, I don't think, actually.
But, yeah.
Well, I guess what would...
1.0b like what is
I've played around a little bit with it
but like what
what do you want things to be out
what kind of polish do you want to be there
what is missing
or is it just like little bugs here? With the language itself
the language itself is effectively done
there's probably one or two might
I say features they're not even features
it's one or two things that I need to just add
just to round it all off one point home
I would have loved to have in line assembly as well
well as a feature in there, but I don't think it's necessary for 1.0.
It could be for 1.1, that's fine.
So the language itself effectively is already 1.0.
However, for many people when they conceptualize a language, it's not just the language.
They're thinking about the core library, they're thinking about the compiler,
thinking about the entire ecosystem.
And there's a few packages that we want to have to be fully bacteria is included.
So one of the things we haven't got yet, but we will, so hopefully soon, is a full-on HTTP package.
to make HB servers and clients and such like that.
Also with native cryptography as well,
because we've got someone who is an world expert
kind of implementing all that now,
and it would just be native in Odin.
If not, we could always use a non-native one if you want,
you can just use whatever,
but it'll be in Odin.
We would also probably want some other libraries here and there,
maybe a UI library as well.
But in general, it's just we want this batteries-included thing
because we want this ability that you can just download the language
and you can just go make things.
Which is sounds like, oh, that's, that's, I can do that in any language.
I'm like, yes and no.
A lot of the time you just have to now download third party things.
You have to go through a package manager, which I've written an article on that,
where I think package managers are evil.
I won't cover that topic again.
But they are one of those things which I do think they lead to more problems than they're ever actually worth.
Again, I don't dislike packages, as you probably can tell.
Just package managers are a very specific thing.
And if people read that, just read that article if you'd like.
But yeah, it's just that.
So 1.0 for me is like language, yeah, we're pretty much there.
Call library, we're not far off.
The compiler, we're not far off either.
It's just, it's literally that spit polish.
We need to get there.
That's all it is.
Okay.
You know, I actually am kind of curious about the package managers thing.
I am kind of curious about that.
well um to explain it so i was on the primogen stream this is going back now what two years nearly
18 months two years and i was with the creator of elixir hose and we were just kind of talking
about this and then i got to one topic and i was kind of uh the primogen was like oh i've heard
about your views on package managers i went okay i'll just start and i went right package managers
for programming languages are evil and i just kind of went to display and i kind of clarified what
I was doing what I was trying to explain what package managers are as well.
And the sort like literally the short answer for all of it is a package manager
automates dependency hell.
And the problem is not everything needs to be automated, especially hell.
Okay.
And that's my general criticism, unnecessary automation.
Now I know many people say, but I need it for this X, Y and Z.
How do you do things without a package manager?
And my general answer is, is that you just do things manually.
because if you do things manually, it doesn't prevent you from going to hell,
it just slows you down and you actually start to see what you're depending on
and literally seeing how things work because you're...
When you just mindlessly download thing and it has a thousand different pendants
and another thousand on top of that...
NPM.
Do you actually know how any of that code works?
There's no vetting.
There's no vendering going on.
It's all just madness.
And you can get to situations like the left pad situation.
I was just about to bring that up, yes.
Yeah, like people depend on something like that and now it's not there.
So then eventually, literally JavaScript, the ECMA script, I should say,
had to actually add that as part of the language.
But then you get the security violations.
So like when literally when I did the primary-genre thing,
a bit later I wrote up the article,
literally pretty much word for word what was said in there
and then just wrote it up.
And two hours after I published a thing,
there was a massive NPM security thing
because people depending on this compromised thing
and people automatically update their things
And just everywhere's gone wrong because you automated hell.
And you've made security leaks.
And people wouldn't have done that.
And I'm like, but people do this anyway.
So you have all this thing.
Again, this is this idea of ideas how I have to think it through.
It's the same thing when I'm doing language design though, man.
It is literally just thinking, how do people actually do use things and how do they think about it?
Okay.
So deal with that.
That's human nature.
You're not going to change human nature.
You've just got to figure out how to navigate it.
And again, Packaging managers, programmer languages, all of these kind of.
of things are no different.
So basically you think the idea of hacker managers sort of facilitates
the creation of this ecosystem
where things depend on things that depend on things that depend on things,
effectively.
And this, like the worst, you know, it's not as bad with something like a Python,
for example, but NPM is the worst case example
where you will download what you think is,
one package and then it has
you know a hundred dependencies
now I think there is a place for package managers
as like a third party thing
for example I do think there is value in having them
on like you know a Linux desktop right
where people are not building
that obviously they're building under the assumption
the package managers exist
but I don't think that necessarily creates as bad of an issue
issue. And I, maybe, maybe you disagree with me here. You think there was so much value in having.
I was trying to focus it on programming languages specifically. Sure, sure. Okay.
When you get package managers for an operating system, like your favorite Linux distro, I think use Arch, don't you?
By the way, Brody, right? If I'm correctly. Yeah, yeah. So, um, and so there's different
package managers out there, obviously. So there's different ones to choose from. And they are useful.
But there's also this aspect where, like, I've used, um, like a Windows machine and a Mac for years.
I've literally, I can remember, like, I've been using a computer since I was like three years old.
And I never used a package manager until I got to Linux.
Well, on Windows, you do have them.
They're built into the Windows.
But I was on Windows.
I was on Windows.
I was on Mac.
But when I needed software, I just downloaded it or installed it.
And it just worked.
And when you get to Linux, it's a bit a bit complicated.
So people say, yeah, that's great.
But Linux is a different thing.
It's like, yeah, you're right.
It's different.
It's open.
It's very much people like to literally download things that way.
And just they treat this package manager as their,
effectively their search engine and download things.
But it's also one of those things where the package manager allows you to update things.
It's a bit more automated compared to say the Mac or the Windows thing,
which may have to be very manual,
unless it's like an Apple specific Mac, Apple specific thing.
You'll have its own package manager built into the operating system.
Yeah, yeah, yeah, absolutely.
It is the update of the software.
But, and then eventually have the Mac store as well afterwards.
I'm just talking before that because they are software updates.
Okay, yeah, yeah.
But this is where it's like, okay, that's what package managers do.
But also each one of those things that you installed, there were just one thing.
They didn't have anything else dependent on them.
The operating system was its only dependency.
So you have this question of what are you actually trying to automate?
And is that a good thing or not?
And I don't, I'm not saying there is a yes or no to that answer.
It's just, it's, I don't think a lot of people, a lot of people don't even think of it that far.
they actually are very blindly trusting of strangers
when they really shouldn't be.
Okay, no, that's definitely fair.
No, I see we are coming from there.
Yeah.
Kind of talk to over each other for a bit there.
One thing I will say is,
obviously, each individual application in Windows
is effectively its own package manager.
Like when the wizards,
obviously are installing dependencies in the background.
But they...
The difference you're saying there is
there's not an overall system
that is managing all of those
individual applications. It is
each in, if you want to
install, I don't know, crystal
disc mark, I don't know, first thing came to mind.
You've got to specifically download
that. I guess now
nowadays obviously things like chocolate
they do exist. So it's
bringing in something. Because
whilst you might have issues with them,
people do find them convenient and people
do kind of want them to an extent.
And this is why you have
application stores as well?
Yeah.
I think application stores are a slightly different thing normally as well.
And because they are only dealing with applications in that regard, right?
Right.
Usually, if it's like the app store, they're usually semi-vetted.
I'm being very careful here because they're not fully.
But they usually a little bit more, it's a repo.
We can search and download things and it has an update manager to you,
which is kind of what a package manager is.
Now, I know a lot of people say they love it and it's very useful for them,
But I also go to you, I'm like, again, it's this question is, is it automating a thing that's necessary?
And my answer to that is probably not.
As surprising that sounds to people, especially since how difficult is to go manually down something.
Even if it's like, if you're on Linux, like just doing W-Get, I know that's like, it's the same thing.
I'm not saying you have to go on a web browser and download it.
Sure.
But it's this way you get into different situations.
it's a very subtle of the discussion this is the problem
there's little things here and there's a lot of nuance to unfortunately
and this is the problem when you talk with like see people randomly on the internet
they strip out all new ones and it's like oh for the sake thank you
especially with YouTube comments and all that's they're my favourite obviously
oh yeah I love them no nothing nothing ever goes wrong in the YouTube comments
nothing nothing ever I've always had most productive comments I've ever had in the
YouTube comments.
I don't be a facet.
Just probably blue down.
There was a, oh my God.
Can I find it?
There was a,
this is not YouTube comments.
This is on Twitter.
I was talking about the Steam controller yesterday.
Unless they deleted the comment.
Did they?
Did they realize that was stupid?
Oh, yeah.
So I made a comment about like gyro controls.
I was like, I don't personally use gyro controls.
Someone replied to this.
that with what causes Linux users to smugly demonize disabled people,
needing something they have absolutely zero experience, knowledge, or context about.
I just said I don't use gyro controls.
I didn't say you shouldn't use them.
I didn't say they're bad.
I just said I didn't use them.
You know, that's the pancake waffle thing, right?
That's, you know, the meme about pancake waffles, right?
Which is literally like, well, I like pancakes.
And they go, what do you mean?
You don't like waffles?
And I meant, that's just a complete different sentence.
But it's like the same with that you're saying you don't use,
like, I use the steam controller.
I absolutely love the original steam controller
and I love the gyro on that's up there.
One of the reasons why is that if you're doing like something
literally a game that was developed for a mouse originally,
I can use that and actually literally have it as accurate as a mouse,
even not better in many cases,
especially like an FBS or a third person shooter and such.
And it's wonderful those sort of things.
It is literally I can get the general gist
and then use the gyro to properly get the high precision that I need.
And no other the controller I've found is ever able to do that as accurately.
And I know with a new steam controller,
they're actually even like capacitive hand grips
which allow you to do the gyro control as well
not just touching the sticks
they can also do it on the grip
so it's like they really are going like this
and I've seen people say they just don't understand
the point of the gyro
why don't it just get rid of it
which is different to what you're saying
you just don't use it
yeah so it's just so these levels of people
extrapolate because they say
oh you don't like gyro
well you're a bad person
because I like it or you don't think about these
it's like it is literally
it's the internet for you right
people just lack
they just skipped to the conclusion that they thought what you've said and it's not what you've said.
Pretty much. Yeah.
Right.
Yeah. Yeah.
You know, I've been, look, I've been on the internet for a long time now, probably longer than I should have been.
I was probably on the internet earlier than I should have been.
Like most people.
Yeah.
Yeah. Yeah, the internet's like this.
I've grown up on the internet literally, so that's not great.
Yeah.
Thank you, Dad.
because my dad was on the internet before the World Wide Web as well.
So he's, yeah, he interested in the actual internet very early on.
Thanks, Dad.
Thankfully, early on my, you know, I didn't get on the internet until, like, I was,
well, I'm a bit younger than you are.
So I was, I got on maybe like, I'm 31 now, so.
Yeah, okay, you're a few years older than me then.
Yeah, just a couple.
Yeah.
I'm 28 now.
Yeah.
But I lived in a rural area initially and rural,
Australia
just didn't have
good internet
my parents also came from a farming background
they didn't care about computers
on internet so I didn't get a
I didn't have a home computer until I was like eight or so
and by then
YouTube was coming out but
everybody else like you know
Australia used to have garbage internet nowadays
you can go fire but back then
whilst the US
was already starting to talk about like 25 down
30 down maybe
50. We were still on like maybe one. So that's sort of limited. As content was being made for
higher and higher internet speeds, it kind of limited what you could do. Oh yeah. I can remember I was
still on dial-up until, when did we go off dial-up? When I was about, say 20 years ago,
right? So I'd have been 11. We were still on dial-up. So I remember that being very slow. And then
eventually we got broadband. And that was amazing. We were getting like three megabits per second
down, which was a lot better than dial-ups.
It was really fast.
I was able to watch my YouTube when it was just coming out in 2006.
I'm watching the amazing things at like 240P, maybe less.
Beautiful.
But yeah, I think people now take granted how fast internet has got
and realizing actually when it was slower.
Actually, this is the funny thing as well.
Like, a bit of a tangent because this is how my brain works.
Sorry.
That's fine.
Let's go.
We'll follow it.
like, websites loaded a hell
a lot faster back then. They just down in many
ways. And I'm not just like going back to things. Like, because
the internet speeds were slow, we had to optimize
have a lot more for the websites. People don't
do that anymore. Yeah, you just like, oh,
50 megabytes for website. Yeah.
Yeah. It's like, no, no, it's not like it was 50 kilobytes.
No, it's like 50 megabytes, 100 megabytes now. It's like,
yeah, people look, internet speeds fast enough, right?
No, not everyone does.
And then they take forever to load, even when they
downloaded. And then they also downloading
multiple different places because they're thinking like,
oh yeah, I have a thousand connections to download
these different places from different places.
That's fine.
It's like you don't know what latency is then.
Thank you.
Yeah.
I think there's, you know, this kind of ties back
into the back to the back to the thing, right?
Where now it's so easy to just install, you know,
if you had to install React package by package,
I think people would reconsider using it for everything.
Yeah.
Oh yeah.
I think this is off the problem again with you automate something like that.
You don't actually start thinking about the consequences of each of it.
And this is the problem is not everything needs to be automated.
And I know that's a controversial opinion for many people.
It's like, well, if I can automate it, why shouldn't I automate it?
And I'm thinking, yeah, but you don't know what you're doing.
Like you actually don't know the consequences of what you're doing when you do that.
And again, I'm not like, react me is kind of the idea of react is kind of genius.
But then everything else that comes from that.
There's all the things that's like all the dependencies and search.
It's just, oh yeah, that's fun.
Well, I think it goes back to what we're saying before, right,
about understanding those low-level concepts.
I think if, like, you know, I'm coming around to this idea, right?
I think there might be some value in understanding how your dependencies fit together
and then automating it later, right?
Having that base understanding of this is how things actually work,
this is why I, like, why do I need this package?
What is this package doing?
Can I get rid of it?
Yeah.
And then once you want, like, once you have that understanding what the package is doing,
you know, if you want to automate it then, you know, hey, totally fine.
Like a good example.
Yeah.
As I used Arch Linux.
I think you should manually install Arch.
However, if I'm spinning up a VM, I'm not manually installing Art.
I'm going to run Arch install.
I'm going to set it up in five minutes and that's going to be all I need.
Yeah. I mean, for me, when I'm installing an operating system, I just want it to be dumb as well.
That's my actual thing. Like, I have done the arch from scratch before.
Never again. I just, I don't like that experience. Like, I'm kind of the thing where I just want this computer to work, just work.
And last time I did the arch thing, it took me a week just to even get the audio drivers to work correctly.
Because every time I restarted the machine, it didn't work again. And I was like, what's going on here?
And I was like, oh, I'd literally try all different ones. I was like, oh, poor, audio. Then you had to go to all the,
pipe wire and all this crap.
And it's just, yeah, it was wonderful.
And people saying, just not doing it correct.
Have you not read this little thing?
And I'm like, great.
But I think there's an incapacity with a driver with my hardware, which was, it's like,
Linux still struggles with audio.
It's amazing, right?
But that's also the general other ideas that some places you do want to automate it.
Like, again, the lovely experience of just installing software, like the operating system,
it shouldn't be difficult.
In fact, another thing is, why does it take ages to install operating system?
should it just be able to copy and paste it onto the drive
and it mostly be done?
Why is there so many other extra setup stages?
It's just, that's another,
and it takes literally sometimes half an hour or more to do it.
I had to do a Windows install,
actually, great, great comparison.
I did a Windows 11 install recently in a VM,
tested that out to...
So sorry.
I don't remember what I was doing.
But for a separate thing,
I also set up Windows XP,
because I wanted access to Windows Movie Maker
just to get a Windows movie maker,
me, Andrew.
I forgot how good it used to be.
I forgot how easy it was.
You just click next and it's done.
Yep.
And I think this is the point.
People go like,
you're just being nostalgic.
I'm like, we're not being nostalgic.
You just go do the thing.
Try the old software and realize,
oh, God, that installed quickly.
All that runs fast.
And they go, yeah, but it ran slow on the old hardware.
I'm like, no, he didn't.
It ran pretty good on the old hardware as well,
surprisingly.
But there's just so much easy, easy experience.
and now the user experience has just been getting worse and worse.
And I know why.
It's just simply because people get...
You might develop a time over performance.
I don't even think it's that.
Seriously.
Because it's optimizing for developer time.
How do I phrase this?
I kind of think the idea of developer experience is a bit of a sci-up
in the sense that...
Sorry, that's kind of a bit of a joke.
but it's kind of like, it's not really,
they're not actually optimizing for development experience.
They're thinking that what they're being doing is like,
well, I'm being more productive,
doing all this more stuff.
And if I optimize doing more crap,
that means I'm doing more stuff,
even though it's like, you're actually just making more work for yourself.
So I don't think they've actually optimized
for developer experience in the slightest, actually.
Especially since, and now this is,
this is not a real bet, by the way,
but the bet idea is if you said,
oh, you develop this application to its completion and been polished,
and you do your approach with your fancy things
and I do my way, the slower
the slower manual way
I bet I would probably do it
is just the amount of time
not the short initial prototype
but the fillish-polished thing
and mine would just run
all as magnitude faster
it would have more functionality
probably as well
and just be better
I'm like but why
I'm not saying I'm a much better programmer
but I'm just saying
I don't think they actually optimise
for developer time at all
and I think there's this myth
where they think they're doing it
but they've never actually tested it.
Hmm.
Right, yeah.
Okay.
Okay, that's fair.
Yeah.
You see what I mean, though.
People think they're optimizing for this.
But are they?
Do they know?
Do they have seen the alternative?
I doubt it.
Right.
It's this,
well, it's a general goal of optimizing for developer time,
but if you don't have that reference point
on what it would have been
without the optimization,
did you actually improve anything?
Correct.
it's literally always that question is
compared to what
like oh I've optimized time
compared to what other approach
what do you mean other approach
like compare to what
and what hot evidence have you got
for that claim
it's like this
but again people don't ever get taught
to think that way in terms of like
because they don't really get taught
basic engineering
it is this level of like well
I could do it this way
I could do it that way
and it's like what the trade us
for this and this
it's like the joke of like
when people say I use the right language
the right tool for the job
if they use language
and they all think, yes, I'll just use JavaScript for everything.
Thank you.
Because that's the only tool they know.
Not the best.
It's just the only one, which also means it's the worst.
Because if you only have one data point, that's all it says.
Right. If the only tool you have as a hammer,
every problem looks like a nail.
Correct.
Yeah.
Yeah, if you only know,
don't try and paint your walls with a hammer.
It's not a good job.
If you only know, JavaScript, everything is...
I'm not trying to create the...
That's how you get the Windows Start menu.
I'm going to react.
I'm on Windows Lerlux.
right now. I hate Windows 11, but I'm doing it just for dog fooding for work stuff.
Yeah. Oh God, the start menu, everything else. I've literally seen accidentally it's popped up sometimes.
And people say, no, it's React Native is what they use. And I'm like, great. Why have I seen a console window then before?
That's just a web browser. You know, like the inspector panel I meant that thing.
No, that's a web browser. That's not React Native.
I love software, okay? I love Windows.
Oh, this is awful.
I've been thinking about downgrading to Windows 10 for this machine, but yeah, I literally have.
Well, this is one of the things I do like about Linux is that if you want to avoid a lot of stuff, you know, you kind of can.
Like, if you, obviously, if you're going to use other people's applications, you kind of will have to deal with stuff eventually.
But at least at the operating system level, you can get rid of a lot of that craft.
If you want to live like it's 1995, like, you can.
Yeah.
The only problem I have many issues with Linux, but I just don't have to have brain issues.
It's not both operating systems, by the way.
I'm not, like, completely biased.
I am just like, I have issues with all of them, but like, I'm developing software.
I'm doing it because most people use Windows, so I'm developing four Windows applications.
But I also don't really like developing, doing an application on Linux yet, because not everything's there yet.
and also the Linux experience isn't great.
It's the irony that Lirx is made for developers.
It's made by developers, but it's not for developers.
It's not nice.
And people go, yeah, but have you not done X, Y, this thing and this thing?
And I'm like, yes, I have, actually.
They don't work very well.
And the development experience on Windows is just much better
because they're actually, weirdly enough,
better development applications on there,
especially like visual debuggers.
I know GDB is very, very powerful.
and they're all like wrappers around GDP that can give it, but they're not brilliant.
And GDP's interface is dreadful.
There's loads of little things where it's like people just bodge things and it's not a good experience.
And this is for me at least, me when it goes to Linux, hopefully when the steam machine comes out,
I'll be buying those as development machines myself.
Yes, it's going to be arch, but it's going to be a very closed down arch that doesn't do anything.
And I'm like, great, that'll work for me.
It'll do the job.
And I can target it for other people.
It's effective a fixed target.
So it'll be a lot easier to develop for,
and I don't have to mess around with anything.
I know I can also develop on it.
I know that the auto drivers work, for example.
Oh.
So, yeah, there you go.
You brought up gaming there.
I did want to kind of talk about,
whilst Odin is not just full gaming,
that is something where I have heard a lot of discussion
around Odin with gaming using, you know, Raelib.
I don't know.
What do you want to say regarding some,
of the use cases people have for Odin.
Yeah, so
Odin is general purpose.
You can literally make anything
in it if you wanted. You could make an operating system
if you wanted to kernel. You could make a web browser.
Very difficult, but it would take you a
decade, but you could do it.
That's just making a browser.
That's just making a browser. Like, well
done guys for doing like the Lady Bird
browser, they are going through as they can
and they're getting there.
And they're going to be like, what, the fourth browser
to, and I say fourth,
it's technically the second browser
because all the rest are based on each other
from like all the roots aren't they at the end of the day
yeah all the other ones died like i is dead
then edge which was sort of i is dead
opera's dead
yeah now all of them that exist is you've got chromium
web kit and mazilla
right so i'm just using that
and so we're web so gecko i should say
sure and technically all of them are based on
like spring like they're literally forks of older
I think you like mosaic and so like the much,
and maybe wrong plebe of time again,
but literally our forks of much older web browsers.
So, in effect,
they've all got the same route in many ways.
Um,
I can't remember exactly, but it goes.
Both WebKit and Chrome stem off of Khtml,
which was the KDE 8, uh,
KD browser project from decades ago.
So there's all say that.
It's all levels of, there's not actually many web browsers at there.
The blink rendering and, like,
for anyone who wants to get pedantic about it.
That's going back some time.
Bloody out.
I forgot about blink.
But yes, there's stuff like that.
So clearly when Lady Boe comes out,
finally we've got another engine that's from scratch.
It actually helps with stuff.
But again, we're going back to Odin
we developed for games.
And many people actually think Odin is specifically
for making games with.
And this does make me laugh,
because when he's all, Odin's only good at making games,
which the thing, the reason why makes me laugh
is Odin's, like, games are the most general purpose.
thing you could ever do.
Like they cover every type of programming
named demand. And if you're saying that's great,
thank you very much the biggest compliment you've ever given me.
Thank you so much.
But again, it's one of those people who are saying with RayLib.
People use Odin to use RayLib because you download Odin.
It comes bundled with Raylib already.
Because it's a vendor, Raylib, there's a package in there.
And then you can just start using it.
It works.
In fact, all you have to do is start writing it and do Odin build.
And that's done.
You don't have an external build system
because the build system is within the code itself.
It's just automatic for you, does all the linking for you.
And it's just so easy and quick iteration to do things.
And that's just the start of it.
Like literally it's just easy to download.
Everything works.
Everything's all packaged together, all vended.
And it's been tailored for the language as well.
And then Odin has many different features within the language
to make it such a pleasant experience compared to, let's say,
using Ray Live from C directly.
Again, we've got proper array types, like dynamic arrays,
so you can just keep appending to things if you wanted.
We've got hash maps in you.
We've got proper string formatting.
You don't have to just use printf in C-star.
We've got runtime type safety on the string formatting.
We've got array programming.
This means you can multiply arrays together with matrices and swizzling
and all that magical stuff.
There's a lot of little things where you go,
oh my God, this actually feels like a really high-level language
or even feels like I'm writing in like a shadier language.
But you're not.
You're doing something.
which honestly, know the language is really caring to that level,
and they're not to give that lovely ergonomic experience.
And that's one thing about Odin when I'm designing,
is it is ergonomic, extremely ergonomic.
And usually most people say Odin is extremely comfort to use.
And that is a lot of design, a lot of iteration,
and understanding how people use things.
And that's all the point of ergonomics is.
It's about designing for humans.
and that's what a program language is for
it's not for computers necessarily
it's for humans
I did see it
I did see a crazy comment
it's like going back to AI from early
I just a crazy
someone's like it's just a little side tangent
someone was saying oh it doesn't matter if the code's ugly
because code's not made for people anyway
it's made for the computer
if your entire
if your entire development mindset is basically
around the the LLM doing everything for you, you know.
I can understand where this mindset comes from
because they're like, well, I'm programming
so I can then make the computer do the thing.
So therefore it's for the computer.
But it's not.
Like these are high-level abstractions,
which are for people to deal with.
So then they can manipulate the computer.
That's the whole point of the compiler.
Like it's not, like, if you're saying,
it's just a computer, like, great,
we'd all be von Neumann and we just write in machine code directly.
And because anything other than that,
just a waste of time.
Because von Neumann was that smart
and didn't understand that people weren't as smart as him.
Yeah.
But that's where it goes to.
But again, this is the thing is when you try and make it a very
comfy experience, like a lot of times some things are just
completely invisible as well.
Like you don't even realize they've been solved
because they're not problems to you anymore.
And again, I wasn't saying like that build experience,
I can just do Odin build dot, like the current directory.
Works, just works, or even Odin Run dot,
and just run the current directory,
it builds, it runs the executable,
and it works.
It's a very pleasant experience.
There's no external build system
that needed most of the time
in the vast majority of times
of most projects.
Even the stuff we have at work,
Django FX,
which is really complicated programs.
I can just do Odin Run Dot.
That's our entire program it runs.
That's how simple it is.
It builds, runs,
and it builds in,
I think at work now,
I've got it down to about second
on my machine,
so I can build Emmergen,
which is half a Mineralancer code in the second.
Dumb.
It's wonderful.
Yeah.
That certainly makes things easy to test that if you're building...
Like, that's crazy.
Yeah.
Yeah, build speeds are really important.
I think this is a lot of people don't realize, again, ergonomics.
This iteration time is very important.
And build speeds are a really important aspect of that.
Because you can iterate quicker.
If you don't have to wait, like if you're doing with Rust,
rust has some long compile times.
And you can be waiting.
or like C plus plus if we're not even have to go to a more modern language.
I remember some of my colleagues, some of them are C plus programs.
They go, I love how fast Oden is.
And at the time when they were saying this, I thought, oh, it's really slow.
It's taken five seconds to compile.
And they're used to five minutes.
Now, I've gotten that time down further and further now.
So they're really happy.
It's even faster.
But it's just this levels of like people put up with really slow stuff.
And then it kind of changes your way of thinking as well about a problem.
because if you have just wait, you go, I don't know, you have a cup of coffee,
or you go out for a little pork or something, like, everything's compiling.
And then you're not thinking about the problem anymore.
Well, if you can just, there's a quicker iteration time,
oh, I can actually be more productive.
Much more.
And that's again, it's all about ergonomics.
It's about designing for humans.
Okay, yeah, I was gonna ask you, like,
is that like part of the philosophy in how the language is designed?
Like, this, this designing for humans,
is this ergonomics?
And if so, like, what are the other sort of design principles you have here?
The design principles in general, it's just usually, again, I said this very conservative approach to
design is saying, like, look, what approaches already know, we know work?
And then just do that.
And, but sometimes they don't work.
Like, for instance, if we have this interacting with another idea, they may not be coherent
ideas.
So you have to kind of like, when you're designing things, the number one goal is always to be
coherent.
And then if and then aim for consistency,
but if you have to choice between coherency and consistency,
I choose coherency every single time.
And this is kind of, again, there's all these little design goals.
It's like, okay, as I said, ergonomics.
What are people problems do people actually have?
Solve that specifically.
And once you see that, understand that idea,
you'll see there's a certain pattern throughout Odin, the language itself.
a great example of this
is Odin doesn't have
operative level of thing
or stuff like that
and you'd be going like
oh but I want to be able
to add my own data structures and such
it's like well Odin's got
took the other approach going
well
what's the actual data structures you need
well we've just added them
in the language directly
not in the core library
in the language
so we've got your rays
you got your dynamic arrays
you got hash maps
they're in there
you know
and they've got
and this thing
is where we actually had
the stuff that people, what they would have normally used, say, operator O'O learning for,
and just implement those things directly.
Like, oh, I wanted it for Aramithic.
Well, guess what?
You can just add two arrays together.
It works.
And does it element-wise?
They go, yeah, but I also want to do another one of the ones saying, like, oh, I also wanted
Quaternians or are complex numbers.
I'm like, guess what?
They're in the language as well.
So there's all these little things where it seems like, oh, it just seems a bit ad hoc
to add all them in.
It's like, well, it's not ad hoc.
It's more of like, what do people use this problem space for and do.
that, rather allowing that generalized solution, we say operator of loading, to open a Pandora's
box, because I have seen actual horror shows of people doing operator loading, where you go,
what have you done? You've overloaded the, I don't know, the multiplication operator, and now it
turns on a toaster. What? Yeah, for anyone who doesn't know what operator overloading is.
That's a bit of an exaggeration, but yeah. Yeah, for anyone who doesn't know what operator overloading is,
Basically, it's the idea where you can redefine what the addition operator or the division operator does in the language.
And this is fine when you're dealing with types that logically makes sense to add together or divide,
or these various things you might do with operators.
The problem is people start using them as a replacement for,
functions that have, that should have a more defined name.
Yeah.
And when it's not even just that, it gets even, even if it was just more arithmetic,
sometimes people do very complicated arithmetic in such and just do it like,
and they'll redefine what the operation means.
Like, I remember seeing a vector library once in C++, and in most C++ code,
you'll see like the percent sign and this means, effectively modular or rate remainder.
That's what it means.
But this one was using it for a vector.
So you'd see A, the percent sign, B.
Now, I'll let you have a guess.
What did that actually do as an operation?
I...
Now, get a hint, it wasn't Remainters.
I'm...
You know what?
It could be anything.
Just, what is it?
In this one particular one I use,
I remember A and B are vectors.
Yes.
Well, this percent sign, it looks like a cross.
So they used it for the cross product.
But people...
do this and you think, yeah.
Oh yeah.
This is not even the worst one I've seen, by the way.
Oh, it gets worse than that.
At least they're doing mathematics.
That's something.
It's mathematics, yeah, but is it the mathematics she wanted?
No.
No.
I've rather, it's just...
But that sounds like a very minor complaint.
Yes.
But it gets worse than that.
I've seen worse and worse.
So you're just like, okay, I don't want to add a feature like this,
which yes, does allow for generalization,
but it opens a Pandora's moment.
box of insanity.
And this is also another design aspect when you're designing for humans is that when you've
seen many other languages and they usually optimize for the individual program.
Odin, I'm trying a bit more optimise for the team because if you optimize just for the
program and allow him to do whatever you need to do, you have this explosion of complexity,
which all of a sudden now what you write in your code doesn't work for other people.
and now you've got incompatibilities, you've got dialects popping up
if you go for the original thing, it would be like the curse of common Lisp pops up here in this sense
and then people have been trying to mitigate that by having more well-defined ideas of concrete ideas
to get rid of that, again, rising up of dialects.
So if with Odin, I've been trying to think, okay, look, stop trying to have this magical,
let's solve everything with this one idea.
Not brilliant, but it just solves everything, but poorly.
We just go like, okay, what the problems people do?
Do that, do that, do that.
Even if, even if that means you've got,
it doesn't please everybody,
but it will please the vast majority of people.
And also not just that,
it'll make your colleagues, your co-workers,
a lot happier because they understand
the constructs and idioms
that everyone abides by.
It's all at the language level enforced.
So it's those kind of little things.
Language design is funny if you didn't guess.
It's also very difficult.
to make sure when you're actually doing a proper language that is used by many people.
And I think at work, we've got, I don't know, is it 20 programmers now at work?
Or using Odin?
That's fun.
And you're trying to literally design for all of them and make sure it all things.
And that's just one company, obviously.
And a dozen other companies that use Odin, profession is their main language.
That's also fun.
Yeah, there's a big difference between, you know, designing a language,
because you feel like designing a language, you want to just see how language.
language design works and then actually trying to make a tool that other people want to use.
Yeah. Yeah. It's that. It's not even just that. It's like, oh, I want to make a proper
language for me that I'm going to make my own software. It's like, great. That's a very different
tool making the language for you as well as making it for others. Because they're all, again,
as I said, I've said on Twitter before, other places, there are decisions in Odin which I don't even
like.
And it's because I've taken certain compromises or trade-offs because I'm trying to make sure it
works with other ways of programming to aim for that.
And sometimes people don't understand it like on things.
But if you explain the logic to them, they'll go, oh, that makes perfect sense, but I never
thought of it that way kind of thing.
And it's like, yeah, it's just these little things where you don't realize until you
interact with other people, what these problems about.
And a lot of these things, you can't even come from first principles.
you actually just have to see how people program.
And you go, good God, I don't want to allow for that.
Let's not do that, shall we?
Because a lot of it's empirical.
There's a lot of things I made and known when I first added stuff.
I went, I didn't think they were going to do it that way.
What?
And again, there's another kind of design philosophy there.
It's very much this, I'm not trying to prevent people from doing things.
You can shoot yourself in the foot.
And I do it quite easily if you want.
But it's more of this.
It's more of I don't want you to shoot other people in the foot.
if they make any sense.
It's really very hard to explain
how this mad mind of mind works
to people in my design approach
because it's not really
trivial in that regard.
You did hit on a really, a really interesting point.
I don't think you've, like you kind of just jump right past it there.
Yeah.
Making a design choice that you don't necessarily agree with.
Coming from the Linux part of the open source
world. That is something that is insane to hear because you're often here, especially from some
of the more narcissistic projects, we'll say. They don't need to be named. They know who they are.
This project is being designed by the developers for the developers. And if you want to make a change,
if you want something to change, then you should go and submit the code to change it. Like this is a
very common mentality that exists in the Linux world. Yeah. It's also why our biggest reason I don't
like a lot of open source software in general because of that mentality. It's very much like we don't
like it. We have the sources available can just modify it now. And like, no, just no thank you.
But there's also, this is also the problem with open sources. There's a very little incentive
for the developers actually to make it decent. So this is, this is again, this is a real big problem
with open source software. Is that lack of.
incentive structure that's there because it's, again, open source software and free open source
software in general tend to make and produce free as in beer software. It isn't, how do I phrase
this? It's going to be free in practice. It's very rarely ever going to make open source that becomes
paid. So what's the incentive to the person to keep making something better? What's the incentive
structure there? I'm not saying there isn't one. It's just it now becomes a different
kind. So you do get this narcissism where people say, well, I'm making it for free, I'm giving
it out for free where you can just be happy that it's for free. And honestly, that just produces
awful software. And for me, with Odin, I know it's open source, but I get, I'm not the biggest
proponent of open source software at all. Odin is open source, but the way I approach it is more,
here's the source. You can see me develop on it, but I'm not really, I'm trying to make his best
product that I possibly can.
Like, I'm trying to be for other people,
not just me.
When it comes to...
Oh, go on.
Go ahead, you go ahead.
Sorry.
I was just going to say, like, when it comes
specifically to languages,
it's really hard to sell someone
on a language that isn't both free
and open source, not free and open source,
but free, you know, what I'm saying.
Free is that you don't pay for.
Like, people outside of very special,
specific cases are not buying, you know, not buying compilers, not buying languages.
It just does not happen at this point.
No.
Even at the corporate space.
Very rare.
The expected price of a compiler nowadays for a new language is zero.
Back in the past, people would have been able to sell compilers.
And in fact, there are still languages today which you can buy their compilers.
A great example would be Matlab or Mathematica.
But Matlab's been around since the 80s.
Right.
It's like they've been grandfathered it.
grandfathered in.
Correct.
So, but this is, this is the problem when the economics of programming languages is bad.
And most languages that come out today are usually created by giant corporations where
the language is just subsidized by that corporation.
And then they try and, but then the way they do is they push it on to different projects and
they get, do that sort of marketing.
But if someone like me, I'm like, I'm not funded by a giant corporation.
I have a job that workers rank.
Yes, we use Odin.
And I do get paid to develop Odin,
but I also get paid to develop things in Odin
with using as the language.
So the incentives, it was complete different.
Many of the languages have this issue.
It's not just Odin's problem in that regard.
There's a lot of, there was a,
I remember seeing a talk on the economics,
a program languages a few years ago.
I didn't really agree with it
because I think a lot of it is also,
a lot of it you're just relying on charity.
That's pretty much if what you're going to be doing.
There is no way of getting money to provide to support to do it.
Unlike some of the projects which are easy to sell,
like a game is a very example because you make a game,
you can sell it, make money from it, make more games, whatever.
But a program image, everybody expects it to be free now.
That's the market price.
Because why would I use it to pay for something when I can use this other thing
for free. And it's because those big giant corporations subsidize the other ones to be free,
pretty much. So why wouldn't you? It's this, and it's like, I don't blame people. It's just how
markets work at the end of the day. And it does this kind of weird. There's also the second thing.
It's a general thing with open source. And I'm sorry for people, I'm criticizing open source
bit here. But this is the general model. Open source in general. I'm happy to see some different
opinions here. Yeah. Like, there's this problem, like, common feeling of like, guilt.
many programmers have that they should give their knowledge out for free as well to the world.
But I always think, why should you feel guilty?
Like, why is that the right emotion that you've placed?
Like, why is that even valid?
It's like, because the problem is when you have all these opens or stuff,
it kind of makes you, it kind of forces you into a sort of charity to give away everything for free.
You wouldn't do this in any other area, any area other than programming.
So why?
Why are we having to be free?
I'll slightly push back on that.
With the growth of YouTube,
I think there has been this sort of also push back against selling general knowledge.
A lot of people feel weird about producing a course.
Even if the content they're making is incredibly good and people would pay for it,
a lot of people feel like I should just release that out there on YouTube for free.
It's ad-supported and people just watch it.
Yeah, but at least, again, one benefit of YouTube is at least is as supported.
You've got as.
That's one minor thing.
That's the monetization model there.
But the other problem is that people further is guilty.
I know, I need to give it out for free because everyone else is doing it.
And again, that's what happens with everything.
It's cheaper and cheaper.
But the thing is, a lot of those paid courses that you'll see,
it's usually a hell of a lot better than the LWC for free on YouTube,
usually on average, not always.
But again, it's this, I'm not saying,
it's hard to explain this nuance to people because I know it's nuanced,
because the point is I'm trying to say here is
there's a tendency
not for definite here
and I think a lot of people
are nice giving out things for free
but it's like
how do you make a living?
We live in a society
where we need money
and
at least again
with YouTube
there are adverts
and then other people
rely on sponsorships of things
obviously they
most YouTubers will have a sponsorship
or something which usually pays for the video
not the adverts that come from
YouTube.
And again, absolutely fine.
But then you get, again, come to software, well, what's the monetization model there?
What is it?
I'm not saying they should be adverts in your software.
I'm not saying that.
But I think a lot of people should actually sell their software, which is, again, sorry
for guys.
I know it's being controversial here, but I kind of want people to make money and keep
making good software.
And a lot of the stuff that comes out for free, people use that because
then it's free, but it may not actually be good software.
It's just, it's free.
Even if the thing that costs money that's only like a dollar,
well, I'm going to use the free thing because it's free.
And as a consequence of this, a lot of people, and especially programmers,
don't value their time.
They literally value their time at zero.
So you may take this thing cost you free, but it's spending hours on hours
when you could have bought something,
well, hypothetically bought something,
which would have taken seconds.
And you wouldn't have had to do all that insanity.
Because you don't value your time correctly.
I've talked...
Sorry, it's just a bit, but...
No, no.
I've talked to quite a few people in the open source space
about software funding.
And it's a really tough equation, right?
Because it also matters, like, where in the software stack you are.
So I've had KDE developers on before,
and they're in a position where they can put a donation prompt in front of people.
Every year they put it...
For past two years to put it...
donation from front of people around December.
They bring in like $200,000 just in like that little bit at the end of the year.
They're doing incredibly well.
Gnome does a similar thing.
They're doing less well, but that's Gnome.
But if you're something like...
Yes, yes, that's true.
If you're a lower level library, I've spoken to Till Campeyter, who is the developer of Open Printing,
who does like the printing stack for Linux.
if you're a printer driver
like he used to work at canonical
and that was all being funded
now he's trying to set up a
separate foundation under the Linux foundation
but like you can't charge
for printing drivers at this
like
where's
where's the funding
that's the thing is a lot of things
with drivers
historically
would have been the printer manufacturer themselves made the drivers.
Because you buy the printer and you give out this thing for software for free.
But now you get into a situation where even the manufacturer drivers don't work
because everybody hates printers.
They always fail.
And there's always problems with them.
And it's always the driver usually.
Sometimes it's not.
Sometimes it's just the operating system.
Like Windows,
I've sometimes had to reinstall the driver just to make it work because Windows does something I still don't know to this day.
But reinstalling the driver makes it work again.
This happens like every like nine months.
But again, this is just these different models.
And I think there's also this, this is the problem when you have,
there's this issue with like the open source model a lot of people have is that they think of the ideals of open source.
And think that that's reality as well.
Like these ideals shouldn't become reality.
I'm like, but that's not how reality works.
So we have this.
there's a lot of things where there's a lot of negative costs that people aren't seeing
because there is no price mechanism to see where to do.
But it's just hard.
It's a hard problem to solve.
And I'm not saying I can give any solutions to this problem.
But I am kind of, it's annoying nowadays that a lot of software has become free.
And a lot of the commercial software has become free.
but either has ads in it
or you have to have a subscription to it
and again, nothing necessarily wrong with subscriptions
I'm not criticising that as a model
but then it's this free to entry
and then it's
to pay for it rather than just
can I just buy it outright please?
I'd love that in a lot of software
can I just buy it please?
Right, like if you were to look at your
you know, let's say you're an Adobe or something
if you offer
I'm sure they know their cancellation rate
is like how often people subscribe for before canceling.
If you were to sell a license for that version,
people, like, even if it's like a $500 license,
people would, people would just pay you the law,
like a thousand dollar license, people would pay it.
That used to be the case.
It did used to be, yeah, Adobe used to do exactly that.
You literally bought a version of a Photoshop,
and guess what, it worked forever after that.
Like, I'm not around me here, the bit,
Like, I've probably got a version of CS5.5 somewhere.
It works.
If I want to use the Creator Suite 5.5, it works.
I don't need to date.
In fact, this is the thing about Photoshop is its functionality.
Most people don't need anything more than like CS2 in terms of functionality.
Right?
And I think that became accidentally free, if you know what I mean, on the internet.
Like, it was just one of those that just became that kind of thing.
But there was also, there's a lot of software like you buy once and it works.
So sometimes maybe you, you, you, you'd buy it once and it works.
So sometimes maybe you, you,
You have to pay every year to get a maintenance fee.
For instance, yeah, you bought it once,
but if you want to update it, yeah, pay again.
It's like, fine, I'm fine with these models
because I'm a developer.
I actually like to be improductive
and save my time.
And when there's tools which I can literally pay
to save me time, I will do that.
I know if I was a child when I was a child
and I had no money, then yeah, actually my time
was actually a lot less because I had no money
to spend it, so I'd waste more time.
But now I'm an adult with money.
I'm like, actually, I've got money to spend, which will save me money.
So it's this.
I also think this is also the problem with the internet.
You forget how many people are very, very young and very, very, very poor.
And also, don't have any money.
Yeah, yeah, yeah.
And they're usually the most vocal.
And they're actually professionals out there are, like, willing to pay for good things.
It doesn't know how it's getting.
I have a professional software.
It could be anything.
Just pay for something.
I want software to work, please.
Please.
And again, I'll be very careful.
I'm a free phrase this.
I'm not saying everything should be paid for.
Some things should be free.
Something shouldn't be free.
It's literally this, it depends.
And there's no general rule for this.
Yeah, no, that's a good point.
There's no general rule, but we've applied this, this,
this, this generalized idea.
And there's this idea on the open source world that we've talked about charity,
right?
It's like this utopia where everybody just works for free,
creating software for each other.
It all works.
Everyone is not just creating stuff for each other.
Everyone in the space is a developer.
Everyone is like feeding back into the software.
That ideology is, yeah, that's something else.
It was mostly, if you look at Linux back in like 1994, it was mostly true.
Basically everyone using Linux that time was a developer.
We've moved so far.
past that model, but the model hasn't moved.
Yeah, and also you're actually, and this is another counter thing, is like,
I always, like one of my biggest criticisms of, I say Linux, the ecosystem,
because I know there's people are pedanting on the internet.
We say Linux, they say, you know, that's just the kernel, don't you know?
Yeah, I'm going to, yes, but that's not how people, for a phrase that.
I'm like, look, Linux, the ecosystem, I'm being very careful because I know YouTube comments
and all that and Twitter comments and search.
It is not friendly for anyone, actually.
let alone beginners or even the developers themselves
like I don't know how long you spend
when you install the new version of arch
and then just trying to set that up
I don't know how many hours you waste doing that
um
it's been my system I've got to fast now
yeah I
my current system have had for a while
but I would say last time I did it probably like a six hours or so
yeah okay so
but that's still quite a long time for a lot of people as well
I know that sounds like,
which means it's only six hours.
I'm like,
some people just want to computer,
switch it on,
it works,
that's it.
They don't want any setup cost.
In fact,
I think a lot of the time,
Linux is getting better,
especially when Valve is doing a very great job
with Steam OS
when that effectively comes out
officially,
because it's like,
here's the decent defaults.
Well,
frameworks also selling a bit more fancy,
yeah.
Selling with Ubuntu as well
for their new framework.
Joel's done the same thing in the past as well.
So there are these devices
that do exist.
It's just,
just few and far between.
Yeah, and this is also the other issue with Linux January.
You've got so many distributions as well.
There's so much choice where that choice is not a good thing as well.
Like for the average person, that level of choice is detrimental to them.
Like if you know what you're doing, that choice can be brilliant.
If you don't know what you're doing, it's like asking, I can't think of a good analogy, so I won't.
But it's literally like, okay, I will say I don't know anything about computers.
I'm like, which version of Linux have I got to do?
Why is there so many different ones?
Why is there a Hannah Montana version and a Pop OS and Arch Linux?
And it's like, which one do I choose?
And it's like, and then you literally, what you have to then do.
And this is the thing is, if you literally ask which this show,
you have to then search on the internet,
you find all these different forums that have like rank a month form 1 to 10
or something stupid that tell you what the benefits are.
And the average consumer is still even more confused.
Yeah.
Yeah.
It doesn't help anybody.
I'm not seen,
and this tree,
it's one of those
where it's like,
they just need a dumb thing.
Like, this is the easiest one,
do this,
nothing else,
don't even,
like, but,
and then you get,
this other problem is where
you got the skill people say,
well,
just use Arsh,
it's great.
And I'm like,
yeah, arch is a distro
maybe fine,
but like,
the user experience
isn't necessarily
easy now to get into it.
So it's like,
you know,
it's not helping anybody.
So it's just this frustration.
It's where the,
not everybody is as nerdy as you.
Yeah,
I think a lot of who,
like I am,
but,
But it's still not, I'm not necessarily what the audience I'm talking about.
You know, you said like an hour and a half.
I didn't mean as you, well, maybe you are, Brody.
No, you said an hour, like an hour and a half ago,
a problem that exists with LMs is you have people with autism
talking to an autistic machine.
It's kind of the same thing here.
A lot of, a lot of people on Linux are not able,
they do not know what other people are thinking.
They have no idea what the average, like,
Maybe, like, they have this idea in their head of like what the average user is,
but they've never actually interacted with the average user.
Nope.
Or maybe they think, well, my mom and dad are struggling on this computer,
but that's just my mom and dad.
And I'm like, no, your mom and dad are probably the typical computer user.
And frankly, if they're near you, maybe they've learned something through osmosis.
Yeah, maybe. This is the thing.
But then it's just, this is why a lot of people buy a Mac as well.
like, for better or for worse,
when you open up a Mac, I've got one in front of me.
It just works.
Like, okay, it's not brilliant.
Like, the hardware's great.
Oh, yeah.
The operating system's got its issues,
but it's a much better experience than, say,
using Windows 11 nowadays or the vast majority of Linux distrakes.
Yeah, yeah, yeah.
In fact, I'd say all Linux distros, in fact.
I can't think of one that's actually even decent
compared to, like, Mac.
And again, that's not even me saying Mac is good.
But again, this is all going back to everything about, I say,
cognitive ergonomics in general what I was talking about earlier,
designing for humans.
Most software isn't really designed for humans.
Or at least not mere humans like myself.
Yeah, there's, you know, there's this all manner of whether you want to get into
the ux design or anything else like that
it's just
yeah software
software is just a mess
basically
yeah it is
oh it is it's an absolute mess
very very fragile mess as well
yeah
the amount of stuff we rely on
and again it's again package managers
people make software that relies on thousands of dependencies
and now you may just offer extremely fragile
and you're being very pessimistic
with how you develop things as well so it's now going to run
really really slow
to the point where you get people going like
well that took
a second to low, that's pretty fast.
I'm like, this should have taken a microsecond.
Oh, God, yeah.
I listen to web developers talking about how long their page takes load and are impressed by it.
Why?
Are you, are your standard's that low?
Yeah, they are.
They don't, this is the problem is they don't have anything else to compare it to.
Their view is like, well, it's faster than I can blink, therefore it's fast.
And I'm not joking, that's probably how many people think about speed.
They go, well, it's faster than I could do manually in my mind.
or something, therefore it's fast, that's computers are faster.
You don't realize how fast computers are?
Computers go ahead, have a lot faster than this now, man.
Yeah, people say, you know, people will say,
I think people actually understand this, right?
They'll say things like, oh, you know,
the computers we have today are X times faster than what sent us to the moon.
And then they're like, they don't make the connection there.
Like, they're that much faster, but the software is like,
you know, that much
slower on the other end?
Like, do we not
see the problem here?
And, you know, that's the old joke goes,
Andy taketh, Andy giveth,
that Billeth taketh away. There you go.
That's Andy from, like, Intel and Bill Gates
as he makes software slower. It's a really old joke.
But yeah, I don't think people realize
how fast computers are, because they, I think
the vast majority of, obviously, developers
don't actually understand
how computers work.
like they just develop
and it's this abstract idea they're with
and I'm not
again
I'm not saying that you have to use see
but if you do use see
you can actually understand how things work
better because you have a better mental model
of how things work
it's not perfect by the way
but I just wish
a lot more developers were at least
a little bit aware of
the slightness
of how faster computer could be
compared to what you're doing
especially if you're a web developer.
There's this
I'm not saying like
I'm going to say web device
I'm talking about front-end people
and I'm sorry back end.
Just please try and download everything
in one connection.
Don't just have multiple little things everywhere
or don't just use these massive frameworks
everywhere that's float and takes ages to load.
Oh wow, I've got to have a timer on my website now.
Like, what decade are we in?
Like when I've got a startup bar?
why?
I saw on the other day
literally I saw
and I literally had to wait
a couple seconds
for it to load up
and then all of it was
at the end of day
was just literally
effect to be like
the equivalent
of some text
and some tables
and this was actually
like I was trying to find
some technical details
and this just took
like three seconds to load
and then a show
and I'm like
was that it
was an image
some text
open tables
done that was it
I don't know what
they were loading
I didn't want to look
actually
because I could have just
seen the entire
profile and gone.
And then you look at the list of like 100 warnings and errors as well as in there.
Yeah, that'll be another one.
Oh, God, the horrors of some websites.
I think it's just going to load instantly nowadays, man.
They should just do.
But again, we're talking right now over the internet.
There's a massive latency because I know there are because you're on the other side of the
planet for me.
Well, that's like a, there's like light is kind of an issue there.
You know, there's like a speed limit there.
Laws of physics get in the way.
Yeah.
However, saying this, look, we've got streaming probably 1080p video to each other right now.
And it's running at 60 frames per second, maybe 30, but depends on on what the Discord's doing.
And this is not even taxing the computer at the slightest, and your web page is not even be able to do any of this.
What?
It's levels of...
Well, the worst part is this is in Discord.
So there's this one part of Discord
that works really fast
and then the rest of it is...
Yeah.
Awful.
Yeah, it's awful and slow.
And it's...
I think it's because this part of Discord,
again, the video, the audio, all this lot,
which is a lot of data, by the way.
There's a lot of bandwidth
that you're broadcasting over the internet
we're then talking to each other.
Yes, there's a latency.
I'm hearing about, like,
sometimes about half a second,
sometimes between us.
But it's fine.
Yeah.
I can just check in the ping now.
We've got 300 milliseconds.
Yeah.
And I'm impressed.
I'm really impressed.
Three hundred milliseconds, like, yeah, that's just the speed of light in the way.
Yeah.
That's, yeah.
One thing we've, we touched on the start, we didn't really talk about.
It's not important, but the Wikipedia thing is just funny.
Oh yeah, the Wikipedia thing.
That was a fiasca.
Anyone who's just unaware, um, um, basically,
Basically, there was a Wikipedia page for Odin.
And now there's not a Wikipedia page for Odin, because some Wikipedia moderators felt like it was not a notable language.
Yep.
There's, you know, there's nothing, it's not important.
No one's using it.
You know, besides the fact that there's a bunch of corporate users and there's, yeah.
There's literally, if we're estimates are correct, we've got, again, if the estimates are correct, there's over a million people have used Odom.
Right?
Because we look at how many people download from GitHub.
We see how many stars are.
Like, on average, people don't do a star repo on GitHub, it's about one in a hundred at most.
So if there's 10,000 stars at the time of recording, 10,000 times 100 is about a million.
Have used the language at least or can regularly use it.
And we look at how many people download every week and it's in the tens of thousands.
and that's downloading it.
Not everyone up down,
and we have monthly releases.
So it's just checking like,
yeah,
we know there's a lot of people using this,
but the reason why to explain what people are going on,
the reason about the lack of not
of notability is they're not in scientific journals.
Or it's not being written in books,
or it's not on,
as they would call it,
reliable news sites.
And some of the examples I read from one of the people here,
they gave some examples of,
well, what's the,
oh yeah,
They said, oh, it's like the Linux magazine or the Infosecurity magazine or Analytics India mag or wire.com and many more.
Now, Linux magazine, okay, is fine.
That's a maybe a reliable site, but it's for Linux.
It's not for general programming languages, right?
And if it's on there, there's programmers that they're going to be talking about on Linux are going to be C, Rust, bash, and that's about it.
I think maybe a pearl strip from time to time.
Yeah.
That's all they're ever going to talk about.
the other ones, I never even heard of them, except Wired.
Like, I used to have a subscription to Wired as a physical magazine 15 years ago.
I don't know anyone who even reads the website, let alone the physical magazine anymore.
And also, I don't remember them ever reading anything about programming languages in that book, in that magazine.
I just opened up WIRE.
It was just to Science, Technology and Politics now.
I think it's mostly politics.
Yeah, I opened up the page right now.
They're talking about the White House shooting.
The White House shooting.
Elon, Elon, Zins, and brain implants.
Yeah, because I remember reading back in the day,
and it was usually not much politics at all,
and it was just science and technology.
And I'm like, look, if that's what they find,
it might be reliable for what they're commenting on.
I don't know.
I don't read it anymore.
Does anybody read them anymore?
Serious question.
So this is, so what I'm saying here is that
when we got, you did this video,
I made it about an article.
and then I had to update it because on Twitter,
someone pinged and pinged Jimmy Wales,
the co-founder of Wikipedia onto it.
And he had a look at it.
This is what it was,
this is brilliant because I was like,
oh God, the internet's quite small, isn't it?
Now, someone pinged him and says,
oh, I would love to see if there's a link.
And he looked to think,
says, oh, it looks very civil and policy-centered,
and I don't see anyone there
with any kind of weird acts to grind.
I mean, who would?
But a general interest in having reliable sources
to back up that is what's in Wikipedia.
I say as someone who has leans, what somewhat inclusionist, I think seems like a good deletion to me.
And that's what Jimmy Wales, just, I don't think he probably read it, but I think he's probably just skimmed it.
People going, well, these are the rules, we're adhering to the rules, no problem.
And my general reply to him was just, I can read out exactly what I wrote, but at my general appraised, like,
the rules are bad for programming, man.
That's not exactly why I said a bit more formally, obviously.
obviously. But I'm saying the rules don't really work well for programming as a domain.
It's the wrong thing. Like for instance, and again, I'm not even asked, I'm not even that
bothered that the Wikipedia is deleted for Odin.
Sure. No, it doesn't matter. Like, it doesn't matter. It's like, but it's very much like,
I'm not asking for this to be reinstated. I don't care too much. But what I'm saying is,
is that there was two criticisms. Like, I don't think the rules make sense for programming
because these reliable sources they want are so outdated, they're not reliable anymore.
And the only reason, I don't explain this, there's a lot of inertia, like 10 inertia with all these things.
And they've just been contested for so long that that uncontestation, that's a word, is the only thing notable about them to begin with.
Right?
It is.
It's uncontestation.
That's a word, right?
Contestation.
Uncontestation, obviously.
a word.
Yes.
It's not in any dictionaries, but we can certainly
get it added. I can get
out of it. I'd be probably the first person to use it,
so I'm happy. It makes sense, right?
But what I'm saying is if they, at least none of these sources
reliable, but also the other thing which was
criticizing is if you applied
all of this logic consistently,
like 90% of programming articles would
be deleted from Wikipedia. Now, I
don't want that. I really don't want
any of that. But it's just, that would be a logical conclusion. And I think this is also the problem
with a lot of like the moderators. They do not apply their rules consistently. And they have a little
clause, which is the W-A-X, which is what about X? Which is effectively we just way to dismiss
like people's complaints saying like, well, you're not applying it to this article. It says,
yeah, but we only consider things in isolation, sir. It's like, no, you don't. You're just ignoring
those because you might like those articles or you may not, you don't care about them or whatever.
And it's just this levels of
I think the rules need to be
reconsidered at least for the programming domain
and
again as I'm saying a lot of the knowledge
that we have like in programming nowadays
live on like personal blocks they live in like small communities
closed channels like discord
and none of this makes sense for Wikipedia's
sourcing standards
in the slightest
so it's now
but I understand what like Wikipedia
trying to prevent against.
Like, again, it leaves you in a horrible position
where it's like,
what if you apply these rules
that you've currently got too strictly,
most of the contemporary lamps,
say, of like, programming
would be excluded entirely, right?
But if you lose them too much,
then it's going to be,
you risk all this advertisement or noise.
Sure, sure, absolutely.
And it then it just becomes this horrible mismatch.
Now, weirdly enough, Jimmy Wells went,
yeah, I kind of agree with everything you've just said.
So it says, I hear you as complicated matter.
And of course it's true and stuff.
And he said, at the end, he went just, I agree with all of that, everything I said to him.
So it's like, okay.
So after a little conversation, you went, yeah, you did agree.
But I'm like, but I'm not complaining.
I'm like, it's just this level of the standard for reliable sources is not reliable.
Right.
And it seems to me mainly their standard isn't reliability.
It's actually prestige is what I would argue.
Right.
Are you in a prestigious journal?
Have you been.
published, not self-published, but published in a book.
Well, that level of prestige is necessary.
And if we don't...
And again, it made sense 20 years ago, 30 years ago.
Doesn't really make any sense now, now, doesn't it?
And trying to say that it does, it's like, great, who's reading programming books,
physical books anymore?
Well, outside of like...
Like, you know...
Yeah, exactly, like new ones.
Like, obvious...
When...
A few people in the comments are like, oh, but languages like Ross,
they have a lot of published books.
Like, yeah, there are...
new languages that have published media, but that is like the one...
The question is like, is Wikipedia for like the top 1% of published languages?
Or should it be something that exists to document the array of things that exist?
And there's not all the things, it's also like, ask how Rust, how has Russ been able to get all of that publishing?
Also, it's been in journals and such.
And the answer is, it's got a lot of funding behind it, hasn't it, as a language?
It's got a massive foundation, which was started by...
Mozilla.
Initially, Mozilla started and then became a joint thing.
You've got...
And all the other things like that.
And then just the goes, they've got funding so they can literally pay to be in journals.
So I actually even thought about this.
I don't care.
I don't want to be on Wikipedia.
But what I'm saying is, if you wanted to be on Wikipedia, what I could just do is pay to be in these reliable sources.
Literally, just pay money.
Right.
And then it would work.
Yeah.
So it's just a pay-to-win scheme at the end of the day.
That's all it is.
Like, and sort of my, one of my things I brought up in the video was with all these outlets that just get things wrong with them.
Like, a great example of an outlet that just tends to make things, especially about Linux.
XDA developers.
XDA used to be an amazing source.
Oh my God, XDA is a mess nowadays.
It's a, it's a, it's a.
It's a mess.
But if you have these so-called, like, notable outlets that constantly make these mistakes,
you know, in some cases, like, pump out just AI garbage articles that no one even reviewed,
why is that any less relevant than, like, a primogen or someone like that?
Well, their rules is they want secondary sources, not primary.
They want secondary from reliable sources, which are not YouTube videos.
However, I'm not going to give examples because I don't want these articles deleted either,
because this is the thing is, I can give you literally a dozen examples.
It's just program languages, for example, dozen off the top of my head and going,
well, if they apply the same logic, this one shouldn't have existed because no one even uses the language.
Like there was one example I was looking like, I just went on GitHub and went,
okay, how many repos does Oden have at the moment on Gailaba?
Where's the 6,000 I found, right?
Which is not small, but it's not big in the grand scheme thing compared to let's say Rust.
Sure.
But I found this other language which had its own Wikipedia.
It's got citations from reliable sites.
And I typed in, it was 40.
So there was 40 projects that used it.
So it's effectively a dead language.
Not saying which one it is, but it's just very much like,
but it's got reliable news sources because of things.
And it's notable because of these,
there have been advertised in these web pages that I've never heard of before.
But it's like, okay, that one's allowed to be out.
But then you've got other languages which are struggling,
like not just older.
There's other ones in similar age
that could be deleted under similar things.
But I'm like, they've got more than that.
They've got tens of thousands of things on GitHub being used.
But because they're not the same notability requirement
of not being in like journals or in second,
not self-authored,
you know, like no, publish books.
Like, well, no, no, no, they're not notable.
Which means I just think the criteria for programming
is completely bonkers.
I'm just wrong.
And there's also other things like, I'm just, I'm going randomly here, but there are articles on Wikipedia, which don't even cover some of the foundational things of programming.
Like a good example, a friend of mine was showing me was like, link lists, right?
There's an article on link lists on Wikipedia. Of course there is.
Sure.
There is no mention anywhere, or even on Wikipedia, of intrusive link lists anywhere, which is one of the most foundational types of link lists out there.
And not just that, that's the foundation of all modern operating systems.
an intrusive ink list.
You can't find it because guess what?
I bet it's not been talked about in any journals.
It's just this tacit information that's within the community
because I know what that is.
I know what that is.
And people may talk about on their personal blogs
and you learn a lot about it.
But it's not been talked about in journals
because why would you need to talk about it?
It's obvious.
So you have this basic thing,
this very fundamental data structure.
Oh, okay.
So I'd never actually heard the term intrusive link list.
Okay, yeah.
I should have explained.
No, no, no.
No, it's just...
The difference to explain is like,
it is extrusive and intrusive.
They're very weird words,
but extrusive means you have like a link list data structure
that wraps the type if you want.
It's a wrapper.
Intrusive means you embed the list within the type you want itself.
Yeah, that was how I learned link list initially.
I didn't even know the terms.
How we should do more?
Yeah, yeah.
Exactly.
But the thing is, it's such an obvious thing.
But you go on Wikipedia,
they never even talk about this distinction
or even how important it is or how useful it is.
or how useful it is.
Like, the entire Linux kernel is developed around these intrusive link lists.
Because guess what?
If they're intrusive, you can actually embed multiple lists within the data structure
and it can all be part of multiple different lists.
When if it's extrusive, it can only be part of one.
And you've got this other problem is like, it's now a container.
It's actually less flexible.
So you have, it's like, but where would they discuss that on Wikipedia?
Because it's not, I bet it's, again, it might be wrong.
I haven't found a journal entry for it.
Yeah. But it's just these little things where it's like, as I keep saying, the wrong domain for all of this.
The irony of all that Wikipedia has clearly been developed through programming.
And the thing it's applying its standards to does not work the thing that makes it even exist.
Oh, well.
It's also clear that at least a few people had like an axe to around with you.
You know, the outspoken persona of Ginger Bill as.
if a cult leader.
I know. I love that. It's hilarious.
Firstly, a persona of Ginger Bill.
No, my name is Bill, and I'm Ginger.
The probably camera's not picking up my ginger beard, but, yeah, that's not a persona.
That's just called a nickname that I've had from school.
Yeah, that's all it is.
I could say my real name, but it's like the most common name you could possibly get.
So there's no point.
I think it was on the article anyway.
I'm really bad when I recommend other languages to people to use.
and I even tell people actively never to use Odin sometimes.
So I think I'm the worst cult leader known to man.
It's like, don't join my cult.
Please don't.
It's like what?
Again, I think some people just don't like me, which is fine.
I don't want everyone to please everyone.
But I bet sometimes it's been deleted because someone really just doesn't like me.
Which means then it's nothing about notability.
You just don't like me.
Could be.
I don't know.
Who knows?
Who knows?
Yeah.
Well, there is a, there is a book.
There is a book.
The Oden book.
Yes, there is a book.
But it's self-published.
That's the problem.
Yes.
Yeah, there's the problem.
I know.
Is the Oden book actually,
I,
I know there's a quote here saying.
It's not in physical form yet,
but I know that Carl Zelensky is thinking about doing it in physical.
It's just,
it's very expensive.
Even if it was non-self-published,
it's still very expensive,
especially getting all the typesetting correct as well.
It's like,
it's actually a real difficult thing to type-setting.
And I remember I'm talking.
about how being how annoyed it was trying to just do type setting.
Is it worth giving the book a read?
The book's really good actually, yeah.
It is actually a really good book.
This is one of those things where he does go explains everything,
kind of a language, kind of goes over how to do things.
Much better than say the Oden Ovi, but he's actually a proper tutorial kind of book to read.
So, yeah, Odenbook.com.
By the way, I don't get any money out of this, clearly.
It all goes to the author of Carl's Lenzhen.
ski. It is a good book.
And it's a very
nicely formatted book as well.
It's very easy. You've got
effectively just simple things with notes in the columns
and it's nicely done. It really is
nicely done.
Is there anything else you really wanted to
talk about? Like, we kind of
touched on most things I wanted to get
to here.
Yeah. And me ranting randomly in places.
Yeah, those are
the fun ones. I enjoy that.
Yeah. But now,
I don't know, yeah.
So we've kind of talked about everything over everywhere.
I mean, I could just say usually just, like, if you're interested in Odin,
and you want an alternative to see, that just keeps you sane.
Like, I've lost all my hair from working in C++, so you don't have to.
Yeah, that's just, as Odin for you.
Give it, if you go, if you enjoy it, it's wonderful.
If you don't, that's fine as well.
Yeah.
Well, if somebody wants to, like, try out.
playing it, yeah.
If someone was like try out Odin
get started with it, like, what would you
recommend someone who's
like, I know it's hard to really say from
someone who's been using it for so long
developing it, but like what do a lot of people tend to
encourage people to look at for getting started?
It depends on what you want to do, literally.
So if you want to make a game, sure, you do
games, some people like using Raylib because it's very quick
to prototype. People even published
literally the published games on Steam
now. There's quite a few actually.
We're just collecting a list just to make sure like
Oh, here's a few.
And some that are coming out soon.
So it's quite a few, like literally a few dozen now at this point, which is pretty cool.
But if you want to do other things of the tooling,
you may want to make your own little compiler of stuff,
or you may want to make your own little processing stuff.
I mean, a few months back, I made my own website generator in Odin.
And it took me like six hours.
All just for another, Odin, made my entire blog runs on it.
Effectively, like, generated, just HTML.
It's static.
is all I needed.
And the reason I did it is because I didn't want to...
Well, I was using Go Hugo, which is a thing...
Yeah, Hugo's quite a nice little tool.
It's great.
We use the actual Made in Odin website, by the way.
But for my blog, I thought, it's a bit overkill, right?
It's just a bit, like, I don't need any of this.
So I just wrote my own one.
It's just a fun, like Sunday afternoon kind of thing.
And it was, it just works.
Like, I forget people, some people just forget that you can just do things.
Just for fun.
And it's easy as well sometimes.
Yeah, that's a, that's, yeah, you don't actually have, people are so focused on like hyper-optimizing their time and like, make sure your time is valuable.
You can just, you can just, you can just, you can just, yeah, just do things. It's fun.
And even just, it doesn't even have to, again, I made a website generator.
Again, six hours, I probably in total, probably spent 12, but those extra six were probably polishing things off.
Like, I want to, or make sure this is correct.
but otherwise it's
yeah I think
again a lot of people think they have to ask permission to do things as well
it's a real big problem
like I've seen a lot of programs like
oh I need to ask permission to do it
just go do it no one's going to stop you
and guess what you may learn something
you may not be able to do it
you may be able to do it
just have fun
learn don't take it too seriously
yeah
yeah I'm pretty much just
pretty much just agree there
It was a pleasure to have you on. This was fun.
No, this is pleasure as well, Brody. Thank you very much. It's been good.
Talk, short. Sorry if I'm, again, sorry if I'm ranting too much, but it's been fun.
I know, it's so good. As I said, I enjoy the rant episodes. I enjoy going down these random, these random tangents.
It's always a lot of fun for me. Yeah. If you want to come back on and do another one at some point, love to have you back on.
Yeah, it would be fun. It would be nice fun, yeah.
So if anyone wants...
have a controversial
I got myself
on next time
because there's
always something
yeah
we'll see
we'll see how we go
so if people
want to check out
Odin or check out
anything you do
where can they go
if you'll try
the Odin language
you can probably go to
W
WW
full stop
Odin Lang
full stop
ORG
We got an org
that's nice
that's an OJ
I'm like
yeah
Also, that reference, how I've said it,
there's going to be like two people
who understand that reference with the
web, same websites.
But that's a nice thing.
You're always checking me out on Twitter if you want.
I'm at the Ginger Bill, obviously.
On YouTube as well,
under, I guess,
Ginger Games is, I think, still the name of the channel
or Ginger Bill at this point.
I did it when I was playing games back in the day.
I used to be a Minecraft streamer.
Yeah, yeah, yeah.
Yeah.
My biggest video's still got like 600,000 views or something stupid.
That was one of those.
Popular.
Oh my God.
Yeah.
Yeah, you found me.
There you go.
That's going back quite a bit now.
It's what 15 years ago, I think?
Hello?
Oh my God, it's Minecraft beta.
Oh.
Oh, yeah.
I haven't played Minecraft in a very long time, probably over a decade now.
That's how
just stopped playing it
I've even lost access to my account
because it was in that transition period
and I couldn't remember my password
and it literally like
I thought it was now lost to time
that original account
back from when I was playing since Alpha
Yeah
Yeah you had to like migrate the account
Like when Microsoft boarded you'd like migrate it to like
I didn't even bother
Because I hadn't even
used it in that long
And when I tried to one down I went
I don't remember the password
The old one
And now I can't migrate it because I lost the time
Yeah
Yeah, yeah.
So, oh, well, maybe I could contact Microsoft and go, hey, could I get this back?
This is proof of me.
Look, can you see this video?
This is me.
But no.
Yeah.
Well, I don't think it makes a difference.
Yeah.
Anything else to direct people to, or is that pretty much it?
Also, of course, my job as well, which is Djanga Effects, all the amazing real-time stuff.
So that'll be Mbogen, Lougen, Liquidgen, and Geogen.
They all really good.
So that's jangorefx.com.
If you happen to need...
But the main thing, we'll just be...
Fire, water, earth effects of various sorts.
Yeah, some procedural generation for games, which is pretty cool.
That's what Lujan is, which is actually pretty cool.
It really is, actually.
But yeah, that's it.
So other than that, you've got Djangre Effects, my general Twitter and YouTube.
And of course, the Odin website at W-W-W-W-Fall-Stop.
Oden Lang, full-stop, O-R-G.
I don't get the reference, but we'll go with it.
No wonder.
This is like a very off-stop.
your reference, it's brilliant.
I might send you it later.
Yeah, yeah, we're good, we're good.
Again, and nothing else you wanted to mention, that it?
No, that should be fine, yeah.
Okay.
Check out, Erin. That's all I can say.
Sweet.
I'll do my outro and then we'll sign off.
Yeah, thank you.
Okay.
My main channel is Brody-Rupperson.
I do Linux videos there six-ish days a week.
I have streamed there before.
It's been a few months.
I'll need to get around to doing that at some point.
I've got the gaming channel at Brody on games.
right now I'll be playing through the absolute garbage that is Shenmu 3.
I don't know why the game ever came out.
And also a much better game, Metal Gear Solid 2.
And I've got the...
If you're watching the video version of this,
you find the audio version of basically every podcast platform that is Tech Over T.
And the video is on YouTube.
Tech Over Tee.
We have a video on Spotify as well.
There is an RSS feed if you like RSS feeds.
Yeah.
How do you want to sign us off?
What do you want to say?
Thank you very much for having me on, Brody. This is absolutely wonderful.
Absolutely pleasure.
And hopefully I can see the next podcast when it comes on for whoever's going to be on next.
It'll be a good, enjoyable thing.
Awesome. You know what? I like that outro. That was nice.
