Does Rust have better portability than C?
Does Rust have better portability than C?
> Portability has been far easier than C, though sometimes we're forced to deal with differences between operating systems. (For example, when we've had to get into the fine details of filesystem permissions, we've found that most everything we do takes different handling on Windows.)
Remember, we’re not talking about the language. We’re talking about the stdlib and the surrounding ecosystem. The Rust stdlib and third party libraries generally handle windows well, so the Tor developers don’t need to special case windows.
Could you elaborate on that? macOS Sierra (released on 2016) on Intel macs is supported[1][2], which should allow for Macs from late 2009 onward to work. The Intel Mac build is no longer Tier 1 because the project no longer has access to CI machines for them, and 32-bit cross building is hampered by Xcode 14 not shipping the corresponding SDK[3].
1: https://github.com/rust-lang/compiler-team/issues/556
2: https://doc.rust-lang.org/nightly/rustc/platform-support/app...
For comparison… I have zero problems bootstrapping a recent gcc with all bells and whistles on my setup. I probably even could bootstrap it still on my even older G4 Mac with 10.6.
But so called "modern" language compilers like Rust of Go… no luck. There's a slight hope for the gcc rust support someday, I guess.
You can make this point without showing contempt for people who are trying their best to support their users. It’s very hard to support Apple platforms if the OS isn’t supported or if XCode drops support for it. There are no workarounds if no one offers CI hardware running that OS/arch.
Nor is there much incentive to try. Only a tiny minority are on the same OS as you, and with good reason. It was released 9 years ago and marked End-of-Life 6 years ago.
It costs time and money to support users like you, and open source volunteer driven projects sometimes don’t have that. Rust and other projects have added support for smaller platforms if passionate volunteers drive it forward. You’re welcome to do that, but it sounds like you’re happy with GCC.
It's the big "open source" projects with company backing (or other larger organisational structures) behind them which supposedly have a lot of "volunteers" (probably some paid folks, and IMHO lots of people that just slave away for free for someone else's gain) that often have trouble keeping 3 or 4 code lines for backwards compatibility.
I wrote hundreds of GitHub issues, send in patches too, etc., and most discrimination you get is from the bigger projects (not saying this is the case for Rust here; I simply haven't managed to get Rust going at all, so I couldn't even report an issue or send in a patch to fix something.) I do not use the term "discrimination" lightly either. Not everyone can afford to buy new hardware when Apple decides to abandon specific machines, often w/o true technical need (see OpenCore which proves this point). So this is essentially a discrimination of a poor minority.
For "infrastructure" projects like Rust and Go where a lot of other projects depend upon I generally would prefer a more conservative approach here, which doesn't seem to happen for some reason or another… "for the sake of 'progress'", I guess.