Zig's cross compilation stuff and general compiler features, that this post talks about, is excellent, awesome, and makes me quite jealous frankly.
Zig's cross compilation stuff and general compiler features, that this post talks about, is excellent, awesome, and makes me quite jealous frankly.
I actually got annoyed with this enough that I started doing a quantitative analysis; if you look at the canonical repository tracking this, it's got 44 total issues, most of which are jokes https://github.com/ansuz/RIIR/issues If you search GitHub for issues with these words in it, you get some, but many are either obvious jokes, people making issues on their own projects to think about doing this, and things like that. I never followed through on collecting it into a blog post though.
I didn't think your writing was inappropriate at all; memes are memes, and I'm convinced that this one is just never going to die, because it's taken a life of its own, regardless of the underlying truth or not. It is always worth pushing back on this sentiment, even if I don't think Rust specifically tends to actually embody that sentiment very much.
(Also: I don't know why you're now being downvoted. Hacker News works in mysterious ways.)
As to why it used to matter, well, it is tremendously difficult to bring a new programming language into popular usage, and even more in the systems space. It requires tireless effort by a large number of people. It is a very fragile thing. The stories we tell ourselves and others matter, and they influence what happens.
That's all I'm willing to say right now :)
https://news.ycombinator.com/item?id=25198571
Someone reposted the same document with Rust replaced with "$hotlang" which, for a reason you can guess, wasn't flagged at all:
https://news.ycombinator.com/item?id=25208313
My impression is that there are more than a few Rust developers who dearly believe in rewriting in Rust and were sincerely, bitterly offended by a joke to the contrary.
I could/would also get into a debate about "satire" and what exactly it is and means, but I have complicated feelings about it, how words change over time, etc.
I've found it be to pretty useful in determining why I'm much more sensitive to things I care about than the things I don't, and particularly when jokes carry an element of truth that I cannot bear to acknowledge
They call this evangelist.
I rewrote 'leakdice' as part of learning Rust, so arguably that doesn't count (though I had never rewritten a program to learn a previous language), and 'misfortunate' wouldn't make sense in unsafe languages so that doesn't count either, but I then also immediately began rewriting 4store in Rust.
I had never been compelled to rewrite stuff in other languages I learned. I am a compulsive programmer, so I did write stuff in languages I learned, (the other day I re-discovered, via an enquiry to a very old email address, that I used to know Scheme, as evidenced by the fact I wrote some Scheme that they were asking about from last century) but I didn't rewrite anything until I learned Rust.
C. Go. Python. Java. PHP. Bash. Perl. C#. Early C++. I'm sure there are many more. But always new things, either because the language afforded something I hadn't considered before or more often I wanted something and I chose a languages I knew would be able to achieve it. That's why I wrote some PHP less than a year ago, I'm not proud of that, but PHP got the job done so that's what I did. I can report that modern PHP is merely a bad idea, like Javascript, which I probably forgot to list above.
Anyway with Rust I not only wanted to write new low-level code in Rust, I looked again at C programs I use and thought, "I should rewrite that in Rust". It felt like a good idea, and I expect to follow through on it at least somewhat, let's see how long 4store takes.
And I'm one that will be super-happy if all C/C++ code in the world dissapear now and be replace by Pascal/Rust/Zig/D/anything else that is better.
MOST of my troubles are because C/C++. And the worst ones. Even if I 'm in a environment (business apps, ERps) where in theory system lang concerns are a distant worry.
I guess the other (simpler) alternative is to wrap Zig into a Cargo package, similar to this:
I have been talking about how much I would love this to happen, but I can't do the work myself. Frankly, I don't contribute to the compiler, so even getting up to speed would be a ton of work I just don't have the time for.
* The collection of headers for various targets, and the tools to upgrade/maintain them.
* The source files for various libcs, patches, instructions/tools to upgrade/maintain them
* A declarative set of instructions to create build artifacts (not Makefiles!!)
* Instructions/patches needed to integrate Clang driver frontends into a different binary (making the "main" functions co-exist peacefully).
Would be a fair amount of overhead to collaborate, but perhaps could ultimately save both parties labor.
"I think he said, 'No way?! Zig for the win!'"
In some way, you could say that Zig is pulling system programmers towards high-level programming, whereas Rust is pulling high-level programmers towards system programming. That's not a watertight comparison but I think it's an insightful one.