top | item 45814953

(no title)

boje | 3 months ago

Why doesn't Zig attract the same sort of lukewarm response that Rust does from parts of communities?

discuss

order

Macha|3 months ago

Rust came first, so people who didn't like Rust flocked to Zig as an alternative, and were keen to promote it as an alternative to Rust by criticising Rust, as wider usage would provide them more of an ecosystem to use in their own Zig programs.

People who were happy with Rust didn't have same need to criticise Zig in online spaces as Rust is the established player in the C alternatives space. (Though Rust is on the other side when compared to C once you expand the space to "all low level programming languages").

Also for people who don't care about the space at all, Rust has had years of exposure to promote fatigue, while Zig hasn't (yet).

hitekker|3 months ago

A bit of a tilted take.

Zig's BDFL was an early major supporter of Rust. It was Rust's core maintainer group who excluded him and warred against his language. The leaders decided any "memory unsafe" language was against "consensus"; first C, then Zig. They even posted on Twitter, calling Zig a "step backwards". This Language Supremacism was even worse in conferences and in private.

Today, you can see a lot of the core ex-leaders still sniping at at other language and even successful OSS projects based in those languages. The Zig community has its faults but Rust takes the cake for relentless gamesmanship.

NobodyNada|3 months ago

> people who didn't like Rust flocked to Zig as an alternative, and were keen to promote it as an alternative to Rust by criticising Rust, as wider usage would provide them more of an ecosystem to use in their own Zig programs.

> People who were happy with Rust didn't have same need to criticise Zig in online spaces as Rust is the established player in the C alternatives space. (Though Rust is on the other side when compared to C once you expand the space to "all low level programming languages").

I think that this effect is...more real and intentional than I wish it was or think is healthy.

There's no denying that Rust benefited greatly from heavy "language evangelism" from around 2014-2022 or so (rough subjective range of dates, ending with when I feel like Rust became sufficiently mainstream that "comment section evangalism" is no longer the primary driver of the language's growth). The atmosphere that surrounded the language evangalism during this era -- from my recollection as someone who was aware of Rust but explicitly not interested in it at the time -- felt like one of curiousity and exploring new innovation in the programming language design space, and it didn't come across as pushy or some kind of moral imperative.

Additionally, most of the evangelism was not driven by the Rust project itself, but more of a grassroots thing from:

- Early users

- People who thought the language was interesting without having used it

- The attention that came from prolific early Rust projects like Servo and ripgrep

- The attention that came from the language's technical innovations

(The only person I remember regularly seeing in Rust threads who was actually associated with the project was Steve Klabnik, and I consider him a stellar example of how to represent a project online in a way that's respectful and not pushy or combative.) And eventually I had a programming task where, thanks to those deep, insightful, and respectful comment threads, I recognized that Rust was the right tool for the task I was trying to accomplish, learned the language myself, found it a joy to use, and began using it more regularly.

But once Rust became mainstream, the eternal September kicked in. Now there seem to be quite a lot of people who are more interested in "language wars" than in healthy, technical discussion of programming languages, and it's exhausting. Many threads about C or C++ or Rust or Zig or Fil-C or whatever seems to get overtaken by these obnoxious, repetitive, preachy, ideological comments about why you should or shouldn't be using Rust, often with very ill-informed armchair takes.

I think this is just something that comes from mainstream Internet culture and is not very representative of "the Rust community", and especially not the Rust project -- most of the serious writing and comments coming from people actually involved with Rust have that spirit of respect, openness, and curiousity about programming language design that I remember from the 2010's. A lot of people who work on Rust are deeply interested in the tradeoffs and innovations of new programming languages and fundamentally excited about the possibility of Rust becoming obsolete because something better has come along. But now that Rust adoption is increasing and the broader Internet culture is being forced to consider it, you see a lot of unhealthy reactionary takes from people who act like programming languages are a zero-sum game and they need to pick a side.

Now Zig is where this gets a little bit odd to me. My impression (as an outsider to the Zig community as well) is that Zig's leadership has chosen to view adoption as a zero-sum language war. It's as if they considered:

- How Rust benefited from language evangelism during the 2010's

- How many other "C-replacement" languages over the past 25 years have failed to gain large-scale adoption

- How "language war" discourse is extremely effective for enagement on places like HN

...and decided that the best way to increase Zig adoption is by intentionally leaning into that high-engagement "language war" discourse. Maybe it's not intentional -- and there's certainly a lot of cool ideas and high-quality technical discussion that comes out of the Zig community -- but I've also seen a consistent pattern of snarky or hostile comments from Zig leadership towards Rust people (such as calling Rust users "safety coomers", or jumping into in-depth technical discussions of Rust's downsides like compiler performance with substance-less cheap shots). Whereas I can't remember ever seeing anything but respect and curiosity from people involved in the Rust project towards other communities.

I'm just tired of seeing people draw battle lines around programming languages instead of promoting a spirit of learning from each other and making our tools better.

RustSupremacist|3 months ago

The perception of Zig and Rust within different communities can vary, and Zig may not attract the same level of "lukewarm response" as Rust due to several factors, including their design philosophies, target use cases, and community engagement.

Zig's appeal lies in its deliberate simplicity and explicitness, offering a different path to high-performance, low-level programming compared to Rust's safety-first, more complex approach. This divergence in philosophy and implementation leads to different reception within the programming community.

okanat|3 months ago

This will be anecdotal. However both in the academia and in the semi-professional space, I encountered certain type of programmer who is a bit more "religiously minded" (both in the technical space and quite often in their personal beliefs too). Unix, although being a quite commercial project, its academic origins attracted a kind of followers, who believe there is a certain purity we can reach with computers or software that's not bound to the practical and economic use-cases. This forms an identity and they tend to regard programmers who are in this ecosystem as gods or prophets. The origins of Unix is also mixed with the free software movement due to both academic origins and regarded as a one continuous movement.

C language is strongly tied to Unix ecosystem. C language and current compilers give this illusion of "ultimate control" to the programmers (although C has been interpreted quite freely for the sake of optimizations). With GNU C compiler finding a niche (i.e. being a free as in beer C compiler and a userland that's not bounded by the original Unix or BSD licensing / patents) and taking off in many servers the beliefs were kind of validated.

Rust attacks those beliefs in multiple fronts:

First and foremost, Rust comes from an inherent distrust to the programmer's abilities to write secure software. Rust creates strong obstacles against writing "magic" programs that freely interpret memory. Programmers are not treated as gods but fallible mortals who needed to be guided. Many C programmers interpret this as an insult to their abilities to manually check and verify a program. Rust is no less capable than C, it has all sorts of escape hatches that can be used in performance critical parts.

Rust compiler itself and the most of the programs written in Rust are permissively licensed. This is to avoid possible issues with copyleft licenses combined with statically linked binaries. Without having a stable ABI or ability to incorporate third party libraries post-build, GPL and LGPL create hurdles that doesn't exist in the mostly dynamically compiled world of C.

Rust has a more equal regard of the operating systems, including non-POSIX ones like Windows. Despite most people in the world interact with non-POSIX APIs the most, accepting it as another step.

Rust community tries its best to create a safe space for marginalized parts of the society. Go to any Rust conference and you'll see an over-representation of LGBTQ people. This probably rubs majorly white male subset of strongly identifying C programmers up wrong way.

The community also welcomes a bunch of different ways of thinking and questioning the basics of every single decision we made when we were building the systems of today.

Zig, on the other hand doesn't attack any of those "base principles". It fixes the most annoying parts of C programming: fluid integer types, really weak type system, hostile dependency management. It still trusts the programmer 100%. The default behavior is still unsafe.

People who choose Rust are also particularly worried about the security of the programs and they would like to prove and validate the language's existence and goals. They do that by reimplementing very popular and very senior projects in Rust and compare its performance and safety against existing C projects too. Many such projects have enjoyed a long time of no competition and now there is one.

vacuity|3 months ago

Your comment is really quite interesting. Thanks! What you're saying all sounds plausible to me.

I note that, while different circles may call for "purity" (fans of, e.g., Unix, Lisp, or Haskell), I think honestly pursuing the purity of writing programs to achieve one's goals means rejecting dogmatism and accepting pragmatism. Adherence to beliefs is fine if, and only if, the beliefs are fundamentally justified....

stusmall|3 months ago

It isn't all of the objection, but there is a non-neglible amount of anti-woke people who find some weak technical reason to hate rust. It's silly but you'll be amazed in how often you see it line up when checking a random sampling of people who show up in rust threads just to make off topic complaints about rust.

EDIT: I hadn't fully gone through the comment section on this one yet and yikes it's worse about it than normal.

fishmicrowaver|3 months ago

Non-negligible from what perspective? Is this group of people somehow holding back unbridled adoption and enthusiasm for Rust? Is it possible for tech people to drum up excitement for a newer language without it being political just because you insist that it is?