Skip Navigation
30 comments
  • To be honest, I never heard of it, and it is interesting, but the language isn't the only factor, it's the ecosystem as well. It says it's an alternative to C, so I will just assume it can consume C libraries. But that still leaves you with using C libraries, which is not a great position to be in if you are looking to not use C.

    If you are looking for something that is actually in use, but not rust, look into Zig. Still would need to use a lot of C libraries, but it at least looks like it has momentum. Not to mention they seek to completely replace libc, which would actually be useful and an achievement, since that is the biggest problem C actually has.

    I am a rust fan myself, but if you are new to programming it's not a great place to start due to its' learning cliff.

    • I thought I would give my experiences with odin and zig. Maybe it will be of use to op.

      Odin:

      I used Odin about 6 months ago.

      I found Odin to be a very easy language to use. It also has wrappers for popular third party c libraries (called vendors) built in (glfw, sdl2, etc.). The vendor libraries are mostly focused on multimedia. Odin also has an extensive standard library.

      My problem with Odin is that it is still not finished. They say the language features are done and will not change but they are still working on the standard library. When last I used it they were rewriting the OS part of the standard library, so anything you wrote using the OS module could change and you would need to rewrite parts of your code.

      My second problem with Odin is the documentation. They do have a large source file with lots of examples in it which is very helpful but documentation for the standard library is seriously lacking. You often have to read the source code to figure out what the standard library functions do. Another documentation resource is their discord but, because of the changing standard library, answers you find via search in Discord are often old. So, you will need to ask and hope someone answers. I will say that the creator of Odin is very active on Discord and does answer a lot of questions.

      I am waiting for a full Odin release before I try it again.

      Zig:

      I used zig about 8 months ago.

      I found zig a bit more difficult to learn. The syntax is a bit different than what I was used to (especially around error handling). But, after I got my head around some of the strange syntax it made sense and worked fairly well.

      My big problem with zig was using c libraries. Zig is good at generating a wrapper for c libraries but the wrapper will feel very c and not zig. So, ideally, someone would have manually tweaked the wrapper to be more zig like and release it as a library. I had issues with zig versions and libraries. Libraries are built against a specific version of zig. Some target the latest in development build and some target a specific release build (and then some have abandoned their libraries and it targets old versions). When you want to use 2 libraries that target different versions it is a nightmare. This brings me on to the build system.

      My second problem is the build system. It is powerful but with power comes complication. I struggled terribly to use the build system to bring in libraries. What did not help is that the build system is constantly evolving so the documentation on forums and in the libraries "how to use" sections was often out of date. This was painful to try to use.

      Another thing with zig that worries me is that they say the syntax is not finalized and it could change forcing you to rewrite your code.

      My conclusion:

      Odin is easy to use especially if you want to use it for graphical programs but have the speed/power of c. Just the documentation is a problem. Also, it is not that popular so the community is quite small.

      Zig is much more popular with a larger community than Odin. More applications are being written and released in zig. It looks like zig may one day become a c replacement. Using it now requires a lot of effort to keep up with its changes.

      Rust... I tried it once but I did not have the energy to learn the borrow checker (or I am just to stupid).

      This is all just my experiences. Your mileage may vary.

    • I love me some C, not C++ just C++. That isn't to say C++ is a bad language, i just prefer the vanilla experience. I picked Rust for it's expressive syntax and ergonomic approach to programming, also ofc the safety and the fact as a solo dev i cannot afford a quality assurance team to review my code.

      I'm familiar and good at Rust. I know the syntax and can read and write it with easy but, there as some instances where Rust can be a pain. For instance quick prototyping. Rust can sometimes feel like i'm working on Rust not my engine.

      Hence the Odin idea. I like the guy Ginger Bill who made it and although maybe not as performant as Rust it is simple and concise. I did investigate Zig but Zig feels like it's a mess to be quite honest, that doesn't mean i dislike or to any Zig fans i like it but it's just not my cup of tea.

      Also having to use Miri with Rust can make everything feel weird as Rust's borrow checker has cases not found in other languages.

  • As someone who's used both, I'd have a strong preference for Odin over Rust if it were at a stable 1.0 release. As it stands now (or, at least, when I used it), Odin is very much in flux. Spend enough time with the language, and you'll either find a bug with the compiler or the semantics will change after you update.

    That said, it would be my favorite without those problems. It is a really simple language in a good way. There's no fancy language features that are just syntax sugar (well except maybe context, but I find that to be actually convenient). You can understand everything in an afternoon if you are already familiar with programming in other languages. Rust is pretty much the opposite in all of these reguards.

    Rust also has the benefit of being pretty recognizable at this point, so if you say your project is in Rust then people will know what that means, unlike Odin. More "resume-able" in a way.

    So, in short:

    • Odin if you're doing it as a hobby
    • Rust if you want something "real"
    • I agree Odin is simple which is why I’m drawn to it, after all i know computer science so really i don't need a prescribed away to do something like in Rust. Rust is amazing, but it can be slow to develop in, the points is in the compiler as for a solo dev, it reduces my need for a code quality team. Odin just gets out the way and let's you get going, it's also Go like which i'm familiar with. I've been slowly planning to stick with Rust, i might help my son learn Odin though <3

  • You're already considering it; try it out.

    Exploration and prototyping is not a life-commitment that excludes other options later (like going back to Rust after all).

  • what would stop you from writing a quick proof of concept in each language to see how they feel?

    • I think you might be correct. I've decide to build a hobby game-engine, as i was signed off from work with limited (if any chance of return), so i definitely have the time to do this and make some measurements. Good idea thank you

      • This is just my take, but a game engine could be a really cool way to see how far you can take Odin. As a new language, I don’t think there are many complex projects using it.

  • TLDR; I chose Rust. Thanks.

    Hello everyone. I just wanted to update everyone on the result of my deliberating on Odin, Zig and Rust.

    After a long time thinking it over. It has become clear that to me in personal opinion that Rust will be the best choice.

    Both in terms of the compiler keeping me a solo dev producing correct code. Without the requirement for a Quality Assurance team. And also i know it really well and languages such as Odin and Zig are fantastic and I am advising my son to learn game-dev with Odin.

    However, ultimately for producing quality reliable machine code. I feel that Rust is a better choice than Odin or Zig.

    Thanks to everyone who commented and helped me find the decision i was looking for <3

30 comments