For what it's worth, I found the Zig community on the biggest Zig discord very nice and welcoming. But that said, there is a lot of "you have to understand Zig" sentiment. Also, there is a lot of "I discovered Zig and it's finally showing me how to program" echoed as well.

I don't find this an unfair judgment but rather an observation.

I think this naturally arises from the language claiming to be "a programming language designed for robustness, optimality, and clarity" (See for instance https://www.recurse.com/events/localhost-andrew-kelley)

If you feel that this is an optimal programming language that gives more robustness and clarity than other languages, then it's natural to be preachy about it.

This is similar to Rust being sold as safe language, where similarly the proponents of Rust feel that the advantages of Rust need to be spread.

As a contrast, Odin focuses on "joy of programming" as its main goal, and the author does not make any claims of the language having killer features to choose it over something else.

However, it seems to be successful in that new users tend to remark how pleasant and fun it is to program in the language.

You can find a lot of the "showing me how to program" sentiment is common among people who learn Lisp/Clojure, Haskell, Erlang/Elixir, APL (oh, I mean, Numpy and Spark), and any other language that significantly differs from what you're used to. In the same vein, C is often a revelation for those who cut their teeth tackling JS and Python.

Indeed, Zig has interesting features that make you think in ways you won't make when using C, like an ability to offload large amount of computation to comptime code, or using different allocators at different times (super simple arena allocation per a game frame, for instance).

"A language that's not changing the way you think about programming is not worth knowing."

You're kinda proving my point here by using such loaded terms. You've chosen the term "preachy" (a negative word) to describe people who are excited about advancements in programming languages (e.g. borrow checker, powerful type system, comptime, alignment as a part of type system). You've chosen to not mention that Rust keeps being the "Most loved programming language" (according to Stack Overflow); isn't this is a sign that people find it joyful?

> Also, there is a lot of "I discovered Zig and it's finally showing me how to program" echoed as well.

So, did you try Zig? How did you find it? Did it show you a new way to program? Or were you already aware of this way? Or do you think it's not a good way? What did you find interesting? What features did you steal because they were good? What do you think is overrated? These are the questions I'm interested in from other programming language designers!

> As a contrast, Odin focuses on "joy of programming" as its main goal, and the author does not make any claims of the language having killer features to choose it over something else.

And that's a fair thing to say! You can say that C3 is just a slightly better C and doesn't have any other killer feature. I'm just not sure why you need to talk negatively about other languages.

I tried Zig in 2017-2018 span (and as part of research I've read quite a bit of Zig over the years). To me the language had some details not previously tried out: special operators for wrapping ops, error value based error returns and pervasive NPOT types. But overall it felt unnecessarily verbose with what I feel were unnecessary changes to established syntax in standard constructs such as "for" and "while". For this reason I started to contribute to C2 instead.

However, my impression was obviously coloured by being around 45 at the time and I was used to program in many different programming languages. Plus I grew up with BASIC, Pascal and C.

There's going to be quite a different experience for someone coming from Go/JS/Java and venturing into low level programming for the first time!

That is not to say that all of the people being enthusiastic about Zig is coming from those particular languages, but I think that C is considered a scary language for many people, so C alternatives tend to attract people from higher level languages to a higher degree than C itself.

When I eventually started on C3, I incorporated some features from Zig. I ended up removing all of them as I found them to be problematic: untyped literals combined with implicit widening, unsigned error on overflow, special arithmetic operators for wrap, saturation.

However, I am very grateful that Zig explored these designs.

From Odin I ended up including its array programming, but for vectors only. I also adopted Odin's use of distinct types.

But most of the C3 features are GCC C extensions plus ASTEC inspired macros.

Oh, wow! Huge respect for this comment. Thank you! This is really cool to hear about.

Off-topic (maybe should ask elsewhere), but why is C3 using "fn", it could not be avoided?

Edit: Someone already asked: https://news.ycombinator.com/item?id=43572190