4 ms·
Ok you're still missing the point. This isn't about C being good or bad or suitable or unsuitable. It's about whether it's good that C has, through no deliberat
by mjg59 8mo ago
Ok you're still missing the point. This isn't about C being good or bad or suitable or unsuitable. It's about whether it's good that C has, through no deliberate set of choices, ended up embodying the interface that lets us build rust that can be called by go.
- drnick1 8mo agoYes, because C is, by virtue of its history and central role in the development of all mainstream operating systems, the lowest common denominator. Also, if I remember correctly, the first Rust and Go compilers were written in C.
- mjg59 8mo agoYes! It's easy to see why we got here, but that doesn't mean it's the optimal outcome!
- zorobo 8mo agoOCaml was used for rust.
- Ygg2 8mo ago> Yes, because C is, by virtue of its history Sure history is great and all, but in C it's hard to say reliably define this int is 64-bit wide, because of the wobbly type system. Plus, the whole historical baggage of not having 128-bit wide ints. Or sane strings (not null terminated).
- thayne 8mo ago> in C it's hard to say reliably define this int is 64-bit wide That isn't really a problem any more (since c99). You can define it as uint64_t. But we have a ton of existing APIs that are defined using the wobbly types, so we're kind of stuck with it. And even new APIs use the wobbly types because the author didn't use that for whatever reason. But that is far from the only issue. 128 bit ints is definitely a problem though, you don't even get agreement between different compilers on the same os on the same hardware.
- thezipcreator 8mo ago> 128 bit ints is definitely a problem though, you don't even get agreement between different compilers on the same os on the same hardware. you technically have _BitInt(128) in C23, but I'm not sure that would even generate what you expect it to.
- pjmlp 8mo agoRust used OCaml, and Go only used C, because it was partially created by the C authors, and they repurposed the Plan 9 C compiler for Go. Usually it helps to know why some decision was taken, it isn't always because of the technology alone.