Remix.run Logo
hresvelgr a day ago

Another language that is in a similar space to Zig that I think deserves more attention, particularly for funding is Odin. While I think Zig is a great language, there is a consistency of design and simplicity to Odin that makes low-level programming more ergonomic and enjoyable to me. While Zig boasts a lot of impressive projects, Odin was used to build the JangaFX suite[1].

[1] https://jangafx.com/

rootlocus a day ago | parent | next [-]

Ginger Bill, the Odin language developer, is openly hostile against package managers (he wrote a post called "Package Managers Are Evil") so he maintains his own wrappers of popular C libraries in vendor folder next to the compiler. That doesn't sound like a healthy ecosystem to me.

I think zig is also highly opinionated but it always seemed to me that Andrew started from solid pillars and made an excellent job of carefully considering each feature that was added to the language:

- No hidden control flow.

- No hidden memory allocations.

- No preprocessor, no macros.

Odin on the other hand is just some developer's personal taste marketed as "Programming Done Right". So, if you disagree with any choice Bill made, you're not doing programming right.

hresvelgr a day ago | parent | next [-]

> Ginger Bill, the Odin language developer, is openly hostile against package managers (he wrote a post called "Package Managers Are Evil") so he maintains his own wrappers of popular C libraries in vendor folder next to the compiler. That doesn't sound like a healthy ecosystem to me.

There are good reasons for this (supply chain attacks, dependency hell), and while Odin doesn't have a package manager it does have a concept of a package. There is nothing stopping anyone from downloading and adding them to a project, in fact Odin developers do this already. The Odin core library is absolutely massive and contains a lot of what you would need for most projects, vendor rounds it out. The purpose is to be batteries included so your project doesn't have to rely on as many dependencies.

> I think zig is also highly opinionated but it always seemed to me that Andrew started from solid pillars

It's funny you say that, because I hold the same stance for how Odin was constructed, and the examples listed hold for Odin too. There is a lot about Odin's design that is consistent with Zig. Check it out, you might be surprised ;)

> Odin on the other hand is just some developer's personal taste marketed as "Programming Done Right". So, if you disagree with any choice Bill made, you're not doing programming right.

What do you think every programming language is trying to do? Solve the issues of the author. Bill has strong opinions about programming, so he made a language and a reasonably successful one at that. Given the swathe of people who would just complain, it's refreshing when people try to instead better the world relative to their values. Say what you will, he does it because he cares.

hiccuphippo a day ago | parent | prev [-]

You could use Zig's package fetching system for Odin vendor packages since they made it work with C libraries for Zig.

Zig doesn't have a centralized package management system though. It's all links to tar.gz/git with integrity hashes.

b-kf a day ago | parent | prev [-]

Appreciate Odin, especially the batteries included approach (simple to use structure of arrays, matrices, array programming, the context system for custom allocators, ...). To be fair though: the heavy lifting in JangaFX is likely done by a ton of C++ code, it being high performance real time graphics programming.

I assume C++ outweighs Odin in their code base by a significant margin (accounting for all dependencies).

dogwalker5000 a day ago | parent [-]

JangFX is the company I believe. They have many products. One of them, EmberGen (a fluid simulator), is fully written in Odin. No idea what the rest are written in.