Marketing the Odin Programming Language Is Weird
The Odin programming language faces marketing challenges due to the absence of a standout feature, targeting a niche audience needing manual memory management, while misconceptions and funding issues further complicate its promotion.
Read original articleThe article discusses the challenges of marketing the Odin programming language, which lacks a "killer feature" that typically attracts attention to other languages. Odin is designed to pragmatically address specific problems in systems programming, aiming to be an alternative to C. The author notes that the absence of a standout feature makes it difficult to generate hype, which is often associated with programming languages that have unique selling points. Instead of focusing on marketing, the author prefers to encourage potential users to evaluate their needs and try Odin alongside other languages. The target audience for Odin is niche, appealing to those who require manual memory management and high control over memory layout, which may not resonate with the broader web development community. The article also highlights misconceptions about Odin being limited to game development, emphasizing its versatility as a systems programming language. Additionally, the author points out the challenge of funding, as Odin is free and relies on minimal sponsorship, limiting the ability to hire full-time developers. Ultimately, the author poses a rhetorical question about how to effectively market a language like Odin that does not conform to traditional hype-driven marketing strategies.
- Odin programming language lacks a "killer feature," making it hard to market.
- The language is designed to pragmatically solve specific problems in systems programming.
- Odin's target audience is niche, focusing on users needing manual memory management.
- There are misconceptions about Odin being limited to game development.
- Funding challenges arise from Odin being a free language with minimal sponsorship.
Related
I Probably Hate Writing Code in Your Favorite Language
The author critiques popular programming languages like Python and Java, favoring Elixir and Haskell for immutability and functional programming benefits. They emphasize personal language preferences for hobby projects, not sparking conflict.
Golang – when programmers had smaller egos
The article contrasts the utilitarian ethos of Go, created by Google, with modern programmers' focus on personal branding, advocating for a balance between ambition and practicality in software development.
Ousterhout's Dichotomy
Ousterhout's Dichotomy highlights the trade-off between programming language usability and performance. Rust is presented as a solution, balancing high-level usability with low-level performance and allowing incremental optimization.
My negative views on Rust (2023)
The author critiques Rust for its strengths like effective macros and a solid standard library, but highlights concerns about complexity, error handling, unsafe code, and a lack of async support.
What Color is Your Function? (2015)
The article discusses challenges in asynchronous programming, critiquing callbacks and promises in JavaScript and Node.js, while noting that async-await improves usability but doesn't resolve fundamental issues.
- Many users find it difficult to market a new language without a standout feature, as existing languages have established communities and resources.
- Users express frustration with the lack of IDE support and the need for manual build scripts, which complicates the development process.
- There is a call for more visible projects using Odin to demonstrate its capabilities and attract interest.
- Concerns are raised about Odin's competition with other languages like Zig, particularly regarding ecosystem and library support.
- Some users appreciate Odin's design but highlight the need for better community engagement and resources outside of platforms like Discord.
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.
The main point of "killer feature" is not to make the language more "hypeable" but to give a potential user a clear reason why the benefits of learning your language will outweigh the costs of using a less mature or less popular technology.
But I'm glad I did it because it checks off all the "C but nicer" checkboxes.
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.
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).
I actually really enjoyed the language back when I'd used it. One issue I think every language leaves out there is that the language is just a tool and increasingly only one part of a larger tool the IDE/SDK/Engine/Platform. I don't want to really learn a language so much as make useful programs.
Right now we all pay attention when someone announces their new language that's supposed to do things better than existing ones out there but there is a limit to what problems a new language can address.
If you want to make a game for the Switch/PlayStation/Xbox you'll need an SDK and likely can't even use anything but c or c++. If you don't want to make your own engine you'll use whatever languages the engine uses to get things done in. If you want to make a cross platform app that handles accessibility and internationalization you're going to be making a web or electron app.
As much as I am interested in APL, Lisp and smalltalk right now, I get stuck when I ask 'What project am I interested in using this in?'
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.
(There are many other good episodes too - it's one of the best developer podcasts about imo)
This is a fantastic way to turn everyone off of your language: dismiss everything they like about the ones they're already using!
I see that there are two paragraphs on memory management (https://odin-lang.org/docs/overview/#allocators) in the overview but they dive into the details very soon and don't really paint the big picture (I think the sentence "This means that Odin programmers must manage their own memory, allocations, and tracking" is not a great selling point, all other things being equal).
Correct me if i'm wrong but it seems to me that there are Zig, Nim, Dart, Carbon, C3, ooc, (maybe Eiffel?) too in this space, and that only counting C/C++ replacements that you can compile in a way or another.
Yes, they should both be free.
It was near the top an hour or so ago, and now I can't even find 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.
How do they compare?
Related
I Probably Hate Writing Code in Your Favorite Language
The author critiques popular programming languages like Python and Java, favoring Elixir and Haskell for immutability and functional programming benefits. They emphasize personal language preferences for hobby projects, not sparking conflict.
Golang – when programmers had smaller egos
The article contrasts the utilitarian ethos of Go, created by Google, with modern programmers' focus on personal branding, advocating for a balance between ambition and practicality in software development.
Ousterhout's Dichotomy
Ousterhout's Dichotomy highlights the trade-off between programming language usability and performance. Rust is presented as a solution, balancing high-level usability with low-level performance and allowing incremental optimization.
My negative views on Rust (2023)
The author critiques Rust for its strengths like effective macros and a solid standard library, but highlights concerns about complexity, error handling, unsafe code, and a lack of async support.
What Color is Your Function? (2015)
The article discusses challenges in asynchronous programming, critiquing callbacks and promises in JavaScript and Node.js, while noting that async-await improves usability but doesn't resolve fundamental issues.