Ginger Bill
gingerbill.org · Personal blog · on HN since 2019
Ginger Bill, creator of the Odin programming language, writes about language design, memory allocation, and programming practice.
What HN saysHN commenters point to his memory allocation strategies series as a strong resource and cite his posts on Odin's design, such as exceptions and declaration syntax.
54HN people shared it
20linked it in comments
60stories submitted
723story points
2 months agolast shared
2019people per year2026
Most-shared posts
- 1A critique of package managers7 people · 118 points · first shared 2025 · 217 comments on HN
- 2Was it really a Billion Dollar Mistake?6 people · 5 points · first shared 2026 · 1 comments on HN
- 3The Fatal Flaw of Ownership Semantics4 people · 55 points · first shared 2020 · 79 comments on HN
- 4Relative Pointers4 people · 6 points · first shared 2020 · discussion on HN
- 5Does Syntax Matter?4 people · 2 points · first shared 2026 · discussion on HN
- 6Memory Allocation Strategies4 people · 1 points · first shared 2022 · discussion on HN
- 7Context: Odin’s Most Misunderstood Feature3 people · 50 points · first shared 2025 · 5 comments on HN
- 8A Reply to “The Road to Zig 1.0”3 people · 5 points · first shared 2019 · discussion on HN
- 9Exceptions – and Why Odin Will Never Have Them (2018)3 people · 3 points · first shared 2019 · discussion on HN
- 10Pragmatism in Programming Proverbs3 people · 3 points · first shared 2020 · discussion on HN
- 11Designing Odin's Casting Syntax3 people · 3 points · first shared 2026 · discussion on HN
- 12The upcoming iterator design for Go 1.232 people · 138 points · first shared 2024 · 148 comments on HN
- 13The Essence of Programming (2021)2 people · 97 points · first shared 2021 · 64 comments on HN
- 14Marketing the Odin programming language is weird2 people · 67 points · first shared 2024 · 101 comments on HN
- 15If Odin Had Macros2 people · 47 points · first shared 2025 · 28 comments on HN
What HN people wrote when they linked it
gingerBill · 2026-02-22
In the follow up article, I wrote something like this in the conclusion:
> Designing a language is more than just getting the syntax right, and denotation semantics are a lot more important in most ways, but that does not mean syntax does not matter. When you get syntax right, people won’t even know you’ve done anything at all. But when you’ve got it wrong (and have actually tried using the language), they will complain instantly.
Follow-up Article: https://www.gingerbill.org/article/2026/02/21/does-syntax-matter/
johnisgood · 2025-09-03
I have read the post about exceptions: https://www.gingerbill.org/article/2018/09/05/exceptions-and-why-odin-…
I did not personally mind Odin's exceptions, to be honest. I prefer Odin's way, and Go's way, too.
> you'll have to dig for them yourself.
Yeah I was referring to such specifics, but I will take a look at Discord perhaps.
> "Code indentation that is anything but 2, 3, 4, or 8 characters wide, is objectively a bad style from a pure aesthetics standpoint"
Those are just opinions. I prefer 2 spaces, or tab with 2 column width. I tend stick to one style in my codebase, consistently. I do not like anything longer than 2, because I have a small screen and I think it is just simply redundant. I can follow 2 column width indentation just fine. This is just my opinion. If I use tabs, people can choose their own, it is up to them.
FullGarden_S · 2024-12-11
>Any reading recommendations for introduction to the fundamentals of manual memory management specifically
here is a series written by the creator of Odin programming language about memory allocation https://www.gingerbill.org/series/memory-allocation-strategies/
The core:mem package in standard library is a very great resource for memory management in Odin. The standard library's basically got it all.
PythagoRascal · 2022-10-14
hresvelgr · 2026-04-24
I think the magic is still mostly in raylib in that it's a well designed API with high composability. It feels like playing and building. Odin is special in its own right.
There's no particular feature of Odin that really stands out, but where Odin outclasses every language available is that every single feature has been very thoughtfully considered and designed to have the least amount of issues. Once you work with it for a few months, it becomes obvious very quickly its vision is remarkably consistent, leading to a smooth and outright delightful development experience.
I will caution, if you are the type of developer who likes to pull in lots of packages and dependencies to start a project, it's not for you. There's no package manager, and rightly so[1]. You'll have to build most high-level systems yourself. But when you realise that most frameworks and dependencies are trivial to implement by hand, this won't be a bother.
If you're the kind of developer who loves building systems and doing everything yourself, you'll feel right at home.
[1] https://www.gingerbill.org/article/2025/09/08/package-managers-are-evi…
miguel_martin · 2026-03-16
'We believe that data and code should be separate concepts; data should not have “behaviour”.' is flawed, but I don't believe that's the point being made. Instead, I believe the point actually roots in a "programmer mindset" thing when using methods/member functions, due to this explicit separation of data and procedures. With methods/member functions you naturally fall into an "individual element" mindset, see https://www.gingerbill.org/article/2026/01/02/was-it-really-a-billion-… - yes it's semantically equivalent (given the examples in the article and many other cases), but humans are humans and they are biased.
In my opinion: there is a better argument for making new languages not have methods, or more accurately member functions (as what the author describes).
Consider the following situation: you are user of a library that declares a type called SomeType which has "methods" (member functions) in it. You want to add more "methods" to this type.
Now, there is a problem regarding consisteny w.r.t syntax, your new "methods" now have to be called via `foo(&bar)` instead of `bar.foo()`. You as a user of the library and language have to choice to make (regarding code style):
1. Accept this difference in syntax. Maybe you like this style difference, because now you can clearly see what procedures are declared in your codebase vs. the library's codebase, or:
2. Use freeform functions everywhere. Well actually, you can't do this without a refactor of the…
aselimov3 · 2026-08-20
Rust finally got hit... This was motivating me to swap away from Rust towards because of the huge number of dependencies. It seemed inevitable. Ginger bill was right, https://www.gingerbill.org/article/2025/09/08/package-managers-are-evi…
tialaramex · 2026-06-21
It's so bad that here we are in the 21st century and there are even still people who insist it wasn't a mistake e.g.: https://www.gingerbill.org/article/2026/01/02/was-it-really-a-billion-…
ogogmad · 2026-04-01
I'm sure there's a middle ground which still gives you some of the metaprogramming power of Lisp. OTOH this: https://www.gingerbill.org/article/2026/02/21/does-syntax-matter/
supermdguy · 2026-04-01
CountHackulus · 2026-04-01
Every time I'm reminded of this article about package managers. https://www.gingerbill.org/article/2025/09/08/package-managers-are-evi…
msdz · 2026-03-31
Personally I've heard Odin [1] to do a decent job with this, at least from what I've superficially learned about its stdlib and included modules as an "outsider" (not a regular user).
It appears to have things like support for e.g. image file formats built-in, and new things are somewhat liberally getting added to core if they prove practically useful, since there isn't a package manager in the traditional sense.
Here's a blog post by the language author literally named "Package Managers are Evil" [2]
(Please do correct me if this is wrong, again, I don't have the experience myself.)
[1] https://pkg.odin-lang.org/
[2] https://www.gingerbill.org/article/2025/09/08/package-managers-are-evi…
nananana9 · 2026-02-20
I took some shit in the comments yesterday for suggesting "you can do it with a few lines of standard C++" to another similar thread, but yet again here we are.
Defer takes 10 lines to implement in C++. [1]
You don't have to wait 50 years for a committee to introduce basic convenience features, and you don't have to use non-portable extensions until they do (and in this case the __attribute__((cleanup)) has no equivalent in MSVC), if you use a remotely extensible language.
[1] https://www.gingerbill.org/article/2015/08/19/defer-in-cpp/
rubymamis · 2026-01-19
I'm interested in the same! There are plenty of resources for C[1][2]. I just looked into my old notes and found a post for C++[3].
[1] https://btmc.substack.com/p/memory-unsafety-is-an-attitude-problem
[2] https://www.gingerbill.org/series/memory-allocation-strategies/
[3] https://dmitrysoshnikov.com/compilers/writing-a-pool-allocator/
throwthrowuknow · 2025-12-31
Please read gingerbill’s blog to understand more about why Odin is designed the way it is https://www.gingerbill.org/article/
forrestthewoods · 2025-10-12
He's written about it repeatedly. https://www.gingerbill.org/article/2025/09/08/package-managers-are-evi…
The short version is: projects should vendor their deps and manually resolve package versions. I don't think he states his argument very clearly. But I do think he's basically correct.
Vendor your damn deps!
edtech_dev · 2025-09-16
Author of Odin is also against adding a package manager: https://www.gingerbill.org/article/2025/09/08/package-managers-are-evi…
mandarax8 · 2025-06-27
Any kind of relative/offset pointers require negative pointer arithmetic. https://www.gingerbill.org/article/2020/05/17/relative-pointers/
dsego · 2024-10-26
Here are some references, I think Odin is more tasteful and sensible with a cleaner syntax.
https://www.gingerbill.org/article/2019/05/13/a-reply-to-the-road-to-z…
https://www.youtube.com/watch?v=vFFcCLzOOyw&t=676s
https://news.ycombinator.com/item?id=36162056
pqb · 2021-09-07
Among flaws mentioned in the article was error handling in Odin, suggesting OP prefers Zig's way. It looks like Odin is actually experimenting with new approaches too [0].
[0]: https://www.gingerbill.org/article/2021/07/05/value-propagation-experi…