3 ms·
Odin 1.0 Announcement
- deleted 3mo ago[deleted]
- leecommamichael 3mo agoI've been using and loving Odin for probably around 5 years now, with this past couple years being more seriously invested in it. After tens of thousands of lines of code I'm still very happy. If you like C, but feel it's missing a few things, I highly recommend giving Odin a shot. Among the new litter of "better C" languages, Odin is easily the lowest-friction. It makes for a very nice experience. Congratulations, gingerBill.
- christophilus 3mo agoAgreed completely. It’s my favorite language in its class. I need to build something serious in it someday. So far, I’ve only used it for building personal tools.
- pjmlp 3mo agoI kind of like Odin, with its Pascal/Modula-2 influences, even if the community is a bit hardcore on some of their ideas. Love the books in the background, and the whole video. It is also nice that Odin takes the batteries included approach. How well it would fair in the mainstream remains to be seen.
- bovermyer 3mo agoWhat kinds of project would Odin be best suited for, as compared to, say, Rust or Go?
- leecommamichael 3mo agoInteractive applications where a GC is not an option. Rust is shockingly good at being a general purpose language, but that's in the face of the strict semantics of the language and approach to memory. There became a comparison against Go because Go offers strong performance and a complete opposite memory-management experience (in having a GC that largely solves it for you.) Odin sits between these two levels of friction, leaning far more on the Go side of things. There are goodies in Odin which make memory management much breezier than other manual languages, but I'll admit it is still a task you are expected to complete. So that's the story on the memory-management effort. That aside, I'd say Odin is best for interactive applications where a GC is not an option. Although at this point it comes out of my hands so easily that I'd probably write Odin in some situations where it'd be less optimal, and it'd be fun so why not?
- pjmlp 3mo agoGame development. Go really only took off thanks to Docker and Kubernetes, and even if it would be capable, there is hardly an ecosystem there. Rust could be there, but there is really only Bevy, and several companies have tried it and pivoted to something else due to compile times hindering fast prototyping workflows. Odin was created at a games company, JangaFX, and has already a few products using it. https://jangafx.com https://jangafx.com Also Odin batteries include what you need to start coding a game right away, https://pkg.odin-lang.org/vendor https://pkg.odin-lang.org/vendor
- dismalaf 3mo agoJangaFX isn't a games company. They make visual effects tools and are probably best known for their fluid simulations.
- pjmlp 3mo agoThat is debatable, given their customer portfolio.
- dismalaf 3mo agoHow is it debatable? Their products aren't games...
- cygx 3mo agoDepends on what you mean by the term: Some companies are in the business of supporting game studios without being game studios themselves (eg animation companies you outsource your out-of-engine cinematics to). If all your customers are game studios, you could be argued to be a 'game (support) company'.
- dismalaf 3mo agoIs Blender a game tool?
- casey2 3mo agoGame engine programming, more generally projects where the programmer controls the spec and data. More specifically, passing custom allocators to specific subsystems. That may sound like "Q:why buy this truck? A:Cos it has a nice oil filter" but it marketed as a language "[for the] joy of programming". Perhaps the goal is to get more people into programming following the same playbook as the scripting wars we had in the 2000s. Or it's part of a larger trend to get mind-share away from c.
- sirwhinesalot 3mo agoBy far the best feature (IMO) is that it has no trouble talking to the most important Windows COM libraries (like DirectX) and the Objective-C runtime (for Metal), and this comes as "batteries included", not some random third party library you have to download. So for any sort of visual engine development (game engines being the most obvious, but also applications like blender or the JangaFx suite which is the main user of Odin), it is great. What you need is just there ready to go. The language design itself is very much oriented around appealing to people who do this sort of work. Other than there isn't much to the language really. It lacks a "big idea" feature like Rust's lifetimes or Zig's comptime. The closest thing to a "big idea" is the rejection of package managers but that's not really part of the language. It's pleasant to use and compiles fast. Hard to complain.
- Terretta 3mo agoAt the level of this question, with most responses addressing Odin versus Rust or Go as in the question, I'd have been curious for community thoughts adding in Nim and Swift (now that Swift is on Linux and in any IDE that can use SourceKit-LSP). https://www.swift.org/install/linux/ https://www.swift.org/install/linux/ See: "A series of small programs/tasks to compare C++, Go, Zig, Odin, D, Janet, Swift, Nim and C# to see which I like the most" https://github.com/phillvancejr/Cpp-Go-Zig-Odin https://github.com/phillvancejr/Cpp-Go-Zig-Odin
- Cyberdog 3mo agoI used to be a huge fan of Swift but eventually got frustrated that they just don't seem interested in officially supporting anything other than macOS and mainline Linux; any support for BSD or Windows is only through iffy community projects. I can't recommend Swift if you want your project to be broadly multi-platform.
- leecommamichael 3mo agoPersonally, of that sample I prefer Go and Odin. I find compilers to be terribly fun puzzles, and I love to learn languages inside and out. That's great and all, but I also have to get things done, and I find Go and Odin have a certain... rudimentary feeling which keeps me focused. Go less-so than Odin. I've written quite a lot of Swift in my life, and find it to be the absolute worst language for me in terms of this kind of "distracted energy." There are so many ways to abstract things in Swift, the tool bag is just so deep, and I do get a bit frustrated by the sluggishness of the compiler. I had a work project take us 30 minutes for a clean build, and those of us who have used Xcode know that unfortunately a clean build is not as rare as in some other systems. Maybe this has changed. It's been 4 years since I've done serious work with Swift. Glad to see they stopped making so many breaking changes, though. EDIT: Actually Typescript is more distracting than Swift. I could spend days toying with the type-checker to make the program sturdier against one change or another.
- dismalaf 3mo agoAnything you'd use C or C++ for. Graphics, finance, simulations, native GUI apps, command line tools, etc... Semantically it's quite C-like, but it's got some nice modern features like a real module system (Odin calls it packages), a project-aware compiler (no build system needed, just run "odin build ." in your project root), fast compile times, and some nice quality of life stuff (good string type, good maths library, built in array maths, some nice built in stuff for memory management). It's also fast. Like in the same ballpark as C, C++ or Rust. It's basically a modern C replacement.
- baranul 3mo agoOdin is not the only language with Pascal influences, as that applies to Golang and Vlang too.
- pjmlp 3mo agoSure, but at least Odin embraces more stuff than Go, with its design mindset. It has naturally the influences that came via Oberon-2.
- d3Xt3r 3mo agoNot to be confused with Samsung Odin[1], or ODIN (Open Disk Imager in a Nutshell)[2], or Odin for OS/2 Warp[3]... [1] https://en.wikipedia.org/wiki/Odin_(firmware_flashing_software) https://en.wikipedia.org/wiki/Odin_(firmware_flashing_softwa... [2] https://odin-win.sourceforge.net/ https://odin-win.sourceforge.net/ [3] https://odin.netlabs.org/ https://odin.netlabs.org/
- hatefulheart 3mo ago[flagged]
- sirwhinesalot 3mo agoClickbait video title, the first major release is going to be 2027 (date based versioning) (j/k). Odin is a pretty neat language, I should play more with it. There's nothing outright wrong with it I can think of. Some things I would have done slightly different but they're all nitpicks (mainly having the context be a thread local so #contextless wouldn't be necessary).
- gingerBill 3mo agoRegarding the implementation of Odin's `context` not being thread-local, source from here: https://www.gingerbill.org/article/2025/12/15/odins-most-misunderstood-feature-context/#heading-2-12 https://www.gingerbill.org/article/2025/12/15/odins-most-mis... Another common question I’ve gotten a few times is why the `context` is passed as an implicit pointer argument to a procedure, and not something like a thread local variable stack? The rationale being that there would not need to be a calling convention difference for `context`. Unfortunately through a lot of experimentation and thought, there are a few reasons why it is implemented the way it is: * Easier to manage across LIB/DLL boundaries than trying to use a single thread-local stack * Easier management of recovery from crashes where the context might be hard to figure out. * Using the existing stack makes stack management easier already, you don’t need to have a separate allocator for that stack * Some platforms do not thread-local variables (e.g. freestanding targets) * Works better with async/fiber based things, which would then require a fiber-local stack instead of a thread-local one * Prevent back-propagation, which would be trivial with a global/thread-local stack Odin’s context also has copy-on-write semantics. This is done for two reasons: to keep things local, and prevent back-propagation of “bad” data from an third-party library (be it malicious or just buggy). So not having an easily accessible stack of context values makes it harder for this back-propagation to happen.
- sirwhinesalot 3mo agoYeah, all valid justifications.
- bmacho 3mo agoBad video, I noped out after 2 mins, it is annoying and has a very low information density. Anyone uses a yt video -> information service that is fast, free, reliable etc?
- jug 3mo agoFree tier of Google Gemini can summarize and let you ask questions about pasted YT links.
- otekengineering 3mo agoa random video that some ginger dude put up on youtube doesn't seem like a reliable source. any info on this from a reputable institution? shame that HN can't meet the moderation quality bar set by wikipedia
- 7bit 3mo agoHonest question: Are you making a joke? Because while it objectively could be one, it doesn't sound like one. The random ginger dude is the creator of Odin.
- vintermann 3mo agoIt's probably a joke, because Odin was deleted from Wikipedia for being "not notable" recently, and the author thought it was because of his politics. I do think the guy's politics suck, but I also think his language's wiki page was probably targeted for it.
- 7bit 3mo agoAh, that changes thing. That actually makes the joke better.
- dismalaf 3mo ago> the guy's politics suck What politics?
- vintermann 3mo agoGo look up the thread if you must.
- dismalaf 3mo agoLol. I've been in the Odin Discord for 4 years, talked to GB a lot. He literally never talks about politics. On Discord (where one of the channels is basically politics 24/7), on X, nowhere.
- luxorious 3mo agoThere's something seriously off about this ginger bill guy. In addition to copying most of Odin from Jai, Bill copied Jon Blows announcement to his announcement as well as the fake surprised "oh I didn't see you there" opening for the real announcement. He's also planning to release the language the exact same time as Jai, and even said "after ten years of hard work its finally here." Any one of those things you could ignore, but all of them together and its starting to be weird.
- leecommamichael 3mo agoWhat would you say is similar between Odin and Jai? I briefly used Jai (I have never had access) and found that essentially only declaration syntax is familiar.
- luxorious 3mo agoThe entire concept of Odin seems to be taken from Jai. They're both aiming to be C/C++ replacements "for the joy of programming" (another thing that was in the early Jai videos that Bill ripped off). In addition to the syntax (which is eerily similar across the entire language), there is the "using" keyword, the "defer" keyword, the context system, custom allocators, native AoS, polymorphic procedures, etc. Again, any one of those things on it's own is not a smoking gun, and many of these features and syntax are becoming standard in modern languages. But the fact that SO MANY of Odin's features and even it's marketing strategy seems to be copying Jon Blow is weird to me. You can still go watch Jon's videos demoing early Jai from 11 years ago...and if you check the comments you'll see a familiar ginger face, so there's no doubt Bill saw those videos when they came out, and began developing Odin AFTER he saw Jai. If he was simply inspired by Jon that's fine, there's nothing wrong with more well-thought out programming languages in the world. But when you copy a lot of the language, copy the announcement to the announcement video, copy the announcement video, and also plan to release at the exact same time as Jai, while largely denying that Jai had any influence of your language, red flags will go off for anyone that's paying attention.
- dismalaf 3mo ago
- viktorcode 3mo agoI read through Odin's FAQ and didn't get the picture of what it does better than everyone else. I think it's missing a good short pitch.
- CyMonk 3mo agoWhy not start with the home page? It provides a good overview and covers all the important points: * The Data-Oriented Language for Sane Software Development. * Odin is the C alternative for the Joy of Programming. * Simplicity, High Performance, For Modern Systems If you don't see value in these points, you are not part of the target audience.
- konart 3mo ago>The Data-Oriented Language for Sane Software Development. What does this mean? What makes it more Data-Oriented than Go? What is sane development? What is insane development? >Simplicity What is simplicity in its case? For example one can argue that borrow checker in Rust is "simplicity" (even if you have to master it) but at the same time you can say that BC is complexity. Similar examples can be outlined for Go or any other language.
- viktorcode 2mo agoWhat it does better than Rust? C++? Swift? And other language? Terms like "sane" and "joy" indicate highly subjective points, which does not help. Yes, I do not see value in knowing someone likes this language. I see value in technical features and examples showing how those features address common pain points in programming.
- phplovesong 3mo agoOdin looks very Go like, oddly it did the same design flaw, and forgot about proper error handling, and it seems to also do the same mistake zig did, and use llvm (so you get those nice 20min compile times). Odin also seem to lack adts? I guess a gamedev niche language can fly with these restrictions, but for a new general purpose langauge these are a must have.