For real, I’m not trying to start a flamewar, it’s just that I’ve been using Odin lately and I don’t understand why more developers are not using it, specially Go developers. Odin is so close to Go, but at the same time, way faster and with more features/safety.
Lack of visibility control, or at least, no easy visibility control
I found this very useful when building APIs since I can create a bunch of code and just expose what I want the user to use. It may conflict with C goals, and maybe this is why it was not included at the language.
No Immutability
Again, maybe it goes against C way of doing things. But being able to define things const at the runtime is such a good thing because you can be sure that the thing is not being mutated. “Be sure” because it’s always possible to mutate using unsafe operations, even in languages like Rust.
Package Manager
Controversial for sure. I understand Bill’s point of view, but damn, it’s just too hard to know which version you’re using, how to bump the versions, etc… I don’t think something like NPM is ideal, but I believe that the way Go does versioning is pretty good.
It’s a game development language
It’s not, it’s a generic language. But it feels like something tailored for game development, which is not a problem if this is the goal of the language. I feel that all those raylib, sdl, and alike bindings could be on a GitHub repo managed by the odin organization and be easily put at the language, but just being delivered with the language gives this feeling of “game dev language”. For example, why not add database bindings?
Let me say this again. I’m not trying to start a flamewar, I have deep respect for Ginger Bill for putting the effort on creating this language, and I really like Odin. I’m just raising this since I’m still on the path of learning more about Odin and maybe this is just me having a different understanding because I came from higher level languages.