8 ms·
Zig VP of community comments on Rust
- aaaaaaaaaaab 4y agoFor some reason the Rust community seems to hate Zig even more than C++.
- mtlynch 4y agoRelevant tweet from Andrew Kelley, founder of Zig, several hours after this was posted: >I see a lot of toxic Rust vs Zig discourse on Twitter right now. I want to clarify my stance: >I'm happy Rust exists and I think it offers a compelling set of tradeoffs. >If Rust people can afford Zig the same courtesy, then I see our relationship as collaborative. >Let us exist. https://twitter.com/andy_kelley/status/1568679389113757698 https://twitter.com/andy_kelley/status/1568679389113757698
- cute_boi 4y agoI don't understand what he wanna imply. Both are programming languages, and we should just let people decide what is best for them. How is Rust lang creating a problem that Zig lang developer is saying "Let us exists".
- somethingor 4y agoSome potential context: https://news.ycombinator.com/item?id=32781696 https://news.ycombinator.com/item?id=32781696
- j-pb 4y agoThe rust philosophy is very correctness oriented and safety focused. This, combined with a general frustration with how broken software engineering is as a whole, has led to the mindset in part of the rust community that using anything less than very rigorous type checking is unprofessional and dangerous (think Therac-25, https://en.wikipedia.org/wiki/Therac-25 https://en.wikipedia.org/wiki/Therac-25). Zig is in a sense the antithesis to that statement, in that it eschews complex tools like a sophisticated type system, in favour of simplicity and programmer enforced contracts, with the reasoning that it is easier to informally proof correctness of a simple system, than to formally proof correctness of a very complex system. The correctness of the latter often being a somewhat shallow property that is still able to miss the intended semantics (think memory vs logic bugs). The closest analogy in programming language communities is probably clojure vs scala or haskell. In fact there is an interesting paper on code quality, where clojure compared quite favourably to statically typed languages, despite it's dynamic nature. https://web.cs.ucdavis.edu/~filkov/papers/lang_github.pdf https://web.cs.ucdavis.edu/~filkov/papers/lang_github.pdf
- zozbot234 4y agoSomewhat ironically, idiomatic code in Zig can easily be more correct than unsafe code in Rust. The Rust devs are still working on giving a full semantics for the 'unsafe' superset of the language, and this currently involves quite a few pitfalls that just don't exist elsewhere in the same way. (And btw, unsafe code cannot be ignored altogether since it comes up naturally in any interaction with outside, non-Rust code. Additionally, idiomatically "safe" APIs can sometimes introduce restrictions that leave some performance gains on the table compared to well-written unsafe interfaces.)
- j-pb 4y agoYes I wholeheartedly agree, rust is definitely overpromising in that department. The language has grown too large too quickly imho, and having the compiler as a formally verifying aide when the foundations/axioms aren't defined yet certainly leaves a bad aftertaste for me. In a sense rust hasn't managed to reach it's de Bruijn criterion yet, see https://lawrencecpaulson.github.io/2022/01/05/LCF.html https://lawrencecpaulson.github.io/2022/01/05/LCF.html However, the very same can be said for zig. Given that it is such a simple language, development has focused on a many interesting things including incredible performance, but one has to wonder if the priority shouldn't have been correctness and a fully working compiler that can handle e.g. packed unions.
- puffoflogic 4y ago> Zig can easily be more correct than unsafe code in Rust. Surely you're joking, because zig is a joke. As recently as 0.9-rc2 (and probably to this day) `{ .x = if (false) { X(); } }` sometimes calls X. It is not possible to be "more correct" in such a language. Zig inspired me to think deeply about comptime evaluation and how it could be made into a coherent language, and in that respect it is a useful toy language, but no more. (In zig the comptime idea is incoherent: You cannot run ordinary zig code at comptime because of core differences in behavior. For example, there's no allocation allowed, except that code which appears literally in a comptime block can sometimes append arrays together; but this still means you can't run ordinary code.)
- 4y ago
- mtlynch 4y agoI admittedly don't follow Rust or Zig very closely, but I think Kelley's comment is about the communities supporting the languages, not the languages themselves. The sense I get from reading a few Twitter threads is that members of the Zig community feel that the Rust community disagrees so strongly with some of Zig's design decisions that the Rust folks suggest that the world would be better without Zig.
- lossolo 4y agoHave you seen comments in Zig threads on HN for the past 2 weeks? For example https://news.ycombinator.com/item?id=32752383 https://news.ycombinator.com/item?id=32752383 Maybe this has something to do with this line from former Rust team member: > I don't see much room for a new language that isn't memory-safe in 2022.
- fulafel 4y agoWorth noting that this same idea has been widely held over decades by proponents of safer languages, long before Rust as well.
- afking 4y agoRelevant tweet: >A massive step backwards for the industry. :( https://twitter.com/pcwalton/status/1568306598795431936?s=46&t=OCidhdHuxbUrIkxRja0o1g https://twitter.com/pcwalton/status/1568306598795431936?s=46... :(
- notacoward 4y agoRust the language isn't causing a problem, but certain members of the Rust community (cited elsewhere in this thread) don't seem to be "letting Zig exist" as Andrew Kelley puts it. One can only be bullied so many times before hitting back.
- hu3 4y agoYep. pcwalton, a proeminent rust user who is mentioned in that twitter thread, made this reply to me yesterday: https://news.ycombinator.com/item?id=32782656 https://news.ycombinator.com/item?id=32782656 > It's perfectly reasonable to take the position that it's deeply problematic for a language aiming for wide use in 2022 to not be memory safe. There's no requirement that you "focus on tradeoffs", especially since real people get hurt by memory safety problems. And my message was already about someone else calling Zig users irresponsible. Talk about toxicity.
- notacoward 4y agopcwalton's problem is that he doesn't distinguish between different levels of memory safety. It might be "deeply problematic" for a language aiming for wide use in 2022 not to be make some significant efforts toward memory safety, but it doesn't have to be Rust levels. Rust itself isn't 100% memory safe, because a lot of code has to be marked "unsafe" even when it actually is safe and then it might contain other bugs completely unrelated to the reason for the marking and those might go undetected. Similarly, languages like Java and Python are even more memory-safe than Rust, but programs written in them are hardly bug-free either. If you eliminate enough memory-safety bugs, then other classes start to dominate and should also be addressed. Rust is beyond this point, but to get there it diverted resources from addressing other kinds of bugs and has also made some severe usability/productivity tradeoffs. Zig might or might not be at that point, but it certainly promises to get there and to do so without the same drawbacks. Ultimately the question is which language lets you write more bug-free code per month. A reasonable argument could be made that it's Rust and a reasonable argument could be made that it's Zig. Only time will tell, but only if both continue to exist and evolve, which pcwalton and others seem unwilling to let happen. What's "deeply problematic" is their belief that Rust's goals and approaches represent The One Right Way and no others can be allowed to exist.
- ksec 4y ago>Zig lang developer is saying "Let us exists" If you follow Zig and Rust closely on HN you may have more sympathy as to why they think that.
- gaganyaan 4y agoThe VP of community calling people a "full-time safety coomer" is... well it's something. Not exactly sure what, but not something that says "Hey, Zig has a nice community".
- zach_garwood 4y agoI'm not hip to the slang. What's a "coomer"?
- gaganyaan 4y agoIt's a term that means approximately "obsessively-masturbating neckbeard". The tweet is derisively saying that pcwalton's focus on safety is equivalent to masturbation. https://www.urbandictionary.com/define.php?term=Coomer https://www.urbandictionary.com/define.php?term=Coomer Whether one agrees with Zig's approach or not, it'd be pretty reasonable to say "Zig doesn't focus on this sort of thing". However, I'd go so far as to say that any language community that has a prominent person slinging aggressive insults like this is one to avoid.
- j-pb 4y agoI don't quite get why this is flagged, hence I vouched for it. Calling someone a "full time safety coomer" seems innapropriate for someone holding the title of "vp of community" in the Zig foundation. It certainly makes me reevaluate the zig community, which thus far was at times a bit childish, but always friendly. While I see this might violate "Eschew flamebait.", a constructive reflection of the interactions between the rust and zig community still feels like a worthwhile endeavour. Edit: After some research it seems that the author has since apologised https://twitter.com/croloris/status/1568704125826748416 https://twitter.com/croloris/status/1568704125826748416
- rtev 4y ago“I’m sorry” 10 hours late followed by an excuse, plus he doubled down hard after the first one. Hard not to be turned off of the Zig language after this kind of thing. Looks like he deleted the original tweet and is in full damage control mode
- DangitBobby 4y agoI don't understand how this could turn you off. Is it good? Is it useful? Use it. Who cares if some community rep guy is a perfect princess or a bit of an asshat.
- j-pb 4y agoThis sentiment ignores, that programming, like everything, is a social endeavour.
- DangitBobby 4y agoYou aren't really hanging out with the guy who wrote that tweet when you use zig. And it seems a bit hasty to extrapolate his behavior to be representative of the entire community, if you think that matters.
- klyrs 4y agoUsing a niche language often means interacting with its community. I don't mind if a couple of fans duke it out, but when somebody like Loris resorts to ad hominem attacks, that's pretty telling. Egos are getting in the way, they've lost sight of the goal and now it's just another content-free slapfest. It isn't a good look. If I report a bug in the language, is somebody important going to take it personally and flame me for it?
- twic 4y agoThe original tweet seems to have been deleted: https://mobile.twitter.com/croloris/status/1568570494303051777 https://mobile.twitter.com/croloris/status/15685704943030517... Does anyone have a copy?
- eurleif 4y agohttps://archive.ph/jq3kw https://archive.ph/jq3kw
- pornel 4y agoIt must be super frustrating to be working on and promoting Zig. Zig has a bunch of its own innovative language features. It has amazing cross-compilation. It is a major improvement over C that still feels closer in spirit to C than C++. …but Rust has changed how people view languages. It has brought focus on compile-time safety, and shown it's possible and practical. It has shown that data races can be caught at compile time. It has shown that GC vs manual memory management has a third option.
- suremarc 4y ago> It has shown that GC vs manual memory management has a third option. C++ had shown this long before Rust.
- whimsicalism 4y agoC++, despite RAII, is still manual memory management IMO
- suremarc 4y agoHow is memory management with Vec and Box in Rust any different from std::vector and std::unique_ptr in C++?
- chlorion 4y agoThey aren't :) The main thing I guess is dealing with C APIs in C++. You do have to use C APIs in Rust as well though, but maybe dealing directly with plain C APIs is less common because of how annoying it is. The only way to avoid that pain is to make a Wrapper library that exposes a more idiomatic and possibly "safe" interface. C++ can wrap C APIs just as well though. I agree with you though, C++ has been doing RAII for a while and I'm not sure why people seem to think Rust invented it. Idiomatic C++ APIs and code are just as "automatic" as Rust for the most part!
- tommiegannert 4y agoC++ doesn't have the borrow checker of Rust. Isn't that what made Rust famous? (Your literal question is a straw man: no, those aren't different, but Rust offers more.)
- tmpz22 4y agoI didnt know what the word “coomer” meant so I looked it up. “Coomer is an internet meme based on an illustration of a scraggly male character who is mocked as an excessive masturbator.” So calling someone a “safety coomer” isn’t great - especially from a “VP of community”. Let’s just agree not to do that again and move on. Personally I’m more annoyed that a small language foundation would hand out VP titles.
- tmpz22 4y agoEdit: Let’s also remember that there are real human beings involved and remember to be kind, forgiving, and not fall into vindictiveness. I don’t think this person is a terrible human being just because of a single gaffe in twitter. I’m sure we’ve all had a lot of gaffes in our time on the internets.
- kjeetgill 4y agoThank you for being a voice of reason in what's become a very flamewary thread.
- rad_gruchalski 4y agoI have no idea what’s even the point of making such comments. We’ve seen dozens of programming languages in the last few decades and all of those languages have their own unique set of features. I’ve learned Rust, Prolog, Fortran, and licked a bit of Ada in the last 4 weeks only. That adds to at least a dozen I worked professionally in the last 22 years. All I can say: yeah, whatever you do in your programming language X, has been done in the past. We all stand on the shoulders of giants. What was that quote? “Talk is cheap. Show me the code”?
- agalunar 4y agoI do agree that the term "safe" shouldn't be used as a shorthand for "memory-safe". Memory safety is only a subset of correctness, and "safe" in my ears sounds misleadingly like a stronger promise. (And the "unsafe" keyword does not necessarily mean memory-unsafe, but simply unchecked.) There's no real harm in this, but I'm a fairly sensitive person and can't help but feel slightly shamed even when I have a case that legitimately requires the use of unsafe Rust, which can be mildly frustrating. That's something that I need to get over, though; I don't think Rust should change. To be clear, I really like Rust (oh, that I could never write C++ again). There are some astonishingly underdeveloped parts here and there [1], and I've a few pet peeves, but it's fun to use and I think it's a great step in the right direction. I'm really grateful to all the people who work on it. [1] I just ran into https://github.com/rust-lang/rust/issues/55795 https://github.com/rust-lang/rust/issues/55795, for example.
- kweingar 4y agoAll I can say is, it doesn’t make much sense to form your opinion about a programming language based on Twitter drama.
- chrsig 4y agoon the language itself, no. on the community surrounding the language? yeah, maybe. they're people you may have to wind up interacting with if you adopt the language.
- Gigachad 4y agoSeems like half of programmers these days spend more time engaging in twitter drama than actually getting work done.
- jalino23 4y agoI like both zig and rust, and I think that toxic comments doesnt represent zig. a bit immature for "vp of community" whatever the hell that means.
- scrubs 4y agoIf we could get the zig of formal methods to team up with zig ... Omg ... I've played here and there with spin, and a few others but nothing yet stuck for the long term. Fm helps safety in all aspects not just memory.
- ksec 4y agoI really hope Zig could reflect on Rust, and adopt a No Hype, No Zealots, and no Evangelism, Show, dont tell, Good old fashion engineering philosophy. Zig already has enough spotlight with a few high profile usage like bun. It doesn't need any drama to gain reach. Just ignore the Rust people's comment. It gets ugly in a hurry.
- dagmx 4y agoBut in this case wasn’t it the zig community bringing the drama? (quite literally in that it was the VP of community ) As far as I can tell, the heated nature of the discussion stems from that?
- trgt 4y agoAs far as I know, even before loris post pcwalton has been poking at zig many times.
- fulafel 4y agoWhat does it mean to be "VP of xxx" in the Zig community?
- philonoist 4y agoI think this VP should resign because of his "coomer" attitude towards hating others.
- up2isomorphism 4y agoIt is hard to win an sharp argument on internet, the size of your mob pretty much determined the outcome. In this case, this vp lost. Essentially language fight on the internet is just as political as any other controversial topics, if not more.
- pcwalton 4y agoAs the target of the barb (which I don't care about--I don't even know what a "coomer" is and I don't care to research it), I flagged this submission. The whole thing is just drama and isn't appropriate for HN.