Skip to content(if available)orjump to list(if available)

Marketing the Odin Programming Language Is Weird

murlin

Rather sure that the only way to market most anything is to make it very visible and quickly understandable (or have the appearance of). It's unclear to me what Ginger Bill expects from the language, a less used and well loved tool is good too (tee hee). Amongst whom should it be popular? How do you make as many of them as possible understand what problems it solves?

Money's a different question hey - there's more funding in open source than there used to be and you can really just ask for money and fill out paperwork and get grants and such if it's a useful project, otherwise it will need to embed into some kinds of important projects so that companies need to invest in it. Can Odin do that?

Asking the internet how to market a niche thing that they've never built is questionable at the outset though :v) Do wish the best for Odin though, it's kino.

0x0203

I thought the funding section was a little odd; I was under the impression that Bill was being paid by JangaFX to develop/maintain the language? But I think the corporate sponsorship of language development should be the norm. If existing languages are not sufficient to solve a business need, then they should pay for the development of a new one (or directly support one they rely on). But making a language "popular" and widely used is directly opposed to making it paid. There are plenty of closed languages out there, but they're only used by the corporations that developed them, and are probably kept closed to make sure the language doesn't stray from their business needs, and/or to maintain a competitive advantage.

Otherwise, I'm generally a fan of Odin, but I do find it quite irritating that only place to ask questions and participate in the "community" is locked behind discord. I even gritted my teeth and tried to make an account for discord just for this, but discord wouldn't accept my (apparently mandatory) phone number. Community questions and answers need to be readable and searchable without yet another login. If I'm learning a language and can't find an answer to a question that was almost certainly asked already, that's just another stumbling block that will prevent me from using said language.

doublerabbit

And if that's the case, me too. I understand that IRC is plain and boring but discord I avoid.

Shame, I've never seen Odin before and got excited over the show cases. I've been looking to tinker with another language outside of the main three, (python, go, rust) and this looks nice.

I think I may try Lazarus again.

rwbt

I recently used Odin in a commercial project and had a great experience. For me the biggest hurdle was not the language, but having to write programs without an IDE like Visual Studio/Xcode. Having to write my own build scripts (shell or batch files) etc and maintaining them is a PITA.

But I'm glad I did it because it checks off all the "C but nicer" checkboxes.

foo42

There's a good episode of the "Developer voices" podcast with Ginger Bill about Odin.

(There are many other good episodes too - it's one of the best developer podcasts about imo)

brabel

The best marketing for me is to see lots of useful/large projects using the language. That's why I invest time in Rust: lots of things are built on Rust, as the constant flow of "ABC written in Rust" posts on HN and other forums can attest to. Because that means that people who are good enough to write those things thought that Rust was a good choice.

Go is the same thing: I learned it because in devops it's the dominant language, which tells me it must be pretty good for those use cases (even if so many people dislike it, no one can claim it's not good enough).

I've looked into Odin and thought it was interesting, but given the amount of work being put into Zig, right now I feel like that's the safest choice (I must say I dislike how even basic things are still being changed in Zig, but no one said it would be otherwise so that's on me). Zig gives very tangible benefits, like not depending on just the LLVM (WIP) as a compiler backend, being able to compile to basically any combination of C stdlib/arch/OS from anywhere without worrying about toolchains and other things that I believe Odin lags behind, despite perhaps being the better language of the two when looking solely at its design (I am not too sure about that as I haven't used Odin for anything yet, and done very little Zig).

frou_dh

Get some of those annoying YouTuber “dev influencers” to cover it and that will get all the developer teenagers hyped about it. It almost goes without saying that the YouTuber should also be gurning in the thumbnail.

diggan

Great way to get freshly made developers to use something, but for the rest of us? Probably has the opposite effect if any.

hluska

Why brand a language via “annoying” influencers? The pro is obviously visibility, but doesn’t that switch the problem from visibility into reputation management?

null

[deleted]

FooBarBizBazz

The SoA features look really nice. I have wanted that forever.

Matrices are built in(!), and look nicely implemented. So are complex numbers and quaternions!

The array programming aspects in general look great.

Zig might be the nicer language for a kernel or a server of some kind, but Odin looks like the better language not just for games, but also for robotics and for scientific programming.

The only problem I forsee is that it seems hard to write nice mathematical libraries for anything that isn't built in.

For example, suppose I want to work with polynomials using a natural infix syntax. Or that I want to wrap matrices/quaternions in types representing various mathematical groups. Or that I want to implement geometric algebra with wedge products and such. Or that I want to form matrices of elements from some finite field. Those sorts of things might push a person back to C++ (or maybe Nim can do it).

I love the SoA/array/matrix stuff though, and the "standard package" selections look great.

fire_lake

It seems that Odin and Zig target similar use cases.

How do they compare?

fallingsquirrel

I evaluated both some time ago. The standout difference for me was Zig requires you initialize all variables and struct fields explicitly, but Odin implicitly initializes variables and forgotten struct fields to their "zero value" (0/null).

indulona

before reading the article, i have to say that odin won't make it unless it will invest serious time into networking. graphics, which is where odin shines, is very niche market and i bet that once JB's Jai comes to public, it might crush odin in this field by sheer persona behind the language in this specific niche. what makes or breaks language is the ecosystem and abilities to use it in various domains. today, the internet/networking moves mountains. it's where the most engineering and money is. if you cannot write fast http/rest/grpc servers with most used databases, your language will fade away into obsolescence, because it might bring nice new features, but if it cannot be used in the most popular fields, it will not make it. and odin is suffering in this aspect tremendously. it has the simple go-inspired syntax going on, but it has no oop/methods, so right there you have an obstacle for new users - it is too different from the norm. it might have great integration with various graphics libraries but it if is too different and lacks the ecosystem of libraries, package manager... there is no reason for it to exist. it also requires GIGABYTES of crap you need to download on windows in order to be able to compile a program. it also needs IDE support, mostly jetbrains, visual studio and vs code, which are the dominant IDEs today. in short, if it lacks convenience of Go or Zig, or even Rust, there really is no point in investing time into it.

PS: this is just off the cuff comment, not too thought out. also, Odin has a chance to beat Zig, due to better syntax and being essentially complete, beside having official spec. Which is not the case of Zig. Zig has traction but lacks in areas where Odin does not. So I would focus on Zig as the competitor, Rust as second. The simplified go-like syntax is one of the main selling points. But there must be more to the language.

PPS: I think the choice of ^ to handle pointers is one of the worst decision in the syntax. The * and & are the norm and should not be messed with.

eterps

> PPS: I think the choice of ^ to handle pointers is one of the worst decision in the syntax.

Funny that's my favourite aspect of Odin's syntax.

    p: ^int
Easy on the eyes.

I also like the convention of the type on the left and its usage on the right:

    p: ^int // ^ on the left
    x := p^ // ^ on the right
Very similar to languages of the Pascal family, but less verbose.

And with structs:

   p^.x  // not necessary
   p.x   // this will do

flohofwoe

I can't think of any language where networking (or graphics for that matter) is built into the language.

At best you get support in the standard lib, but whether things like this should go into the stdlib or 3rd party libs is a decision that isn't set in stone forever, and probably doesn't even matter if it is easy to integrate 3rd party libs into Odin projects. AFAIK Odin has the concept of vendor libraries, which live somewhere between stdlib and 3rd party - so networking could go there).

Compared to Zig specifically, Odin has a couple of language features that might make it less pure from an academic language designers pov, but more convenient from the user's pov and only the last one matters for getting shit done. I wouldn't dismiss Odin only because it doesn't have features XYZ, because it does some other things very right compared to other languages.

Re IDE integration, google for "Odin language server".

knome

>I can't think of any language where networking (or graphics for that matter) is built into the language.

Erlang has cluster aware message passing built in as a fundamental aspect of the language.

chubot

Will Jai be public? From the outside, it seems like the creator is using it to build his own software, but doesn't have that much interest in making it public? (which is fine, but I was surprised to hear talk of its impending release)

striking

It's already been a decade. Maybe someday it will happen but no sense in holding your breath. From an intellectual curiosity standpoint I don't think it actually helps to discuss Jai because it's not something we can form falsifiable theories about. For anyone not already bought in, not already in Jon's ingroup, it may as well not exist.

jitl

He wants to release it once it’s features and stdlib are stable; right now there’s a few things left to change so it’s not ready for release yet.

0x0203

> it also requires GIGABYTES of crap you need to download on windows

I was surprised by this since all I need on Linux is llvm and clang, but looking at the official getting started page, it does indeed say "MSVC compiler and windows SDK" are required. Is that really the only way to run it on windows, or is that just the path most familiar to a typical windows developer?

I personally disagree with saying it requires IDE support. I want to write a ctags parser for it, but that's all I would ever use; as a die-hard vim user, I never liked all the language server stuff people are so reliant on these days. But if that's what people want to use, it's available for Odin as well: https://odin-lang.org/showcase/ols/ -or- https://github.com/DanielGavin/ols

steveklabnik

It is the way to get the platform linker, and so if you’re using a Windows native toolchain, that’s what you have to do.

IIRC there are slimmer packages to get it but you’re still talking a gigabyte, not tens of megs.

flohofwoe

And not being dependent on the platform linker was a massive undertaking in Zig... I don't think many languages actually implemented their own cross-platform linker.

But anyway, if you're in the Odin target audience on Windows you most likely have Visual Studio installed anyway. Also IIRC even Clang and Rust depend on the MSVC linker on Windows, Zig is really an "outlier" (in a good way) in that regard.

indulona

iirc it is about 6 or 7 GB on windows that you need to install. Zig can do it in 75MB, Go i think around the same. Rust has the same problem though.

As for IDE, people who use plain editors like vim, emacs... exist but their numbers are merely a statistical error compared to people that use IDEs(i am counting VS code into this category even though it's just electron). Of course we could debate what is and what is not IDE, but the point here is that we need syntax highlighting, refactoring, jumping to definitions, finding usages and other functionality that IDEs provide.

sirwhinesalot

* for pointers was a stupid choice and there's no reason to keep it solely because people are used to it. Why not keep prefix dereference too? The syntax is attrocious but hey, C does it, so everyone else must.

echoangle

What’s the problem with *? Do you just want a different symbol or an entirely different syntax?

flohofwoe

Not the OP, but the '*' is already the common symbol for multiplication.

Not much of a problem for people who are used to C syntax of course, but may be confusing to anybody else, especially in expressions which have both pointer dereference and multiplication, for instance this is entirely valid C:

    int a = 3 ** int_ptr;
The '^' is the pointer symbol in Pascal, so it's not a new thing either, it just fell a bit out of fashion.

never_inline

> by sheer persona behind the language in this specific niche.

"Persona oriented development" (POP) when?