News for hackers. Stuff that matters.
Re:C Isn't a Language by drnick1 on Thursday February 05, 2026 @09:50PM (#46908433)
I don't see that as a problem. C has been the bedrock of computing since the 1970s because it is the most minimal way of speaking to the hardware in a mostly portable way. Anything can be done in C, from writing hardware drivers, to GUI applications and scientific computing. In fact I deplore the day people stopped using C for desktop applications and moved to bloated, sluggish Web frameworks to program desktop apps. Today's desktop apps are slower than Windows 95 era GUI programs because of that.
Re:C Isn't a Language by mjg59 on Thursday February 05, 2026 @10:14PM (#46908620)
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.
Re:C Isn't a Language by drnick1 on Thursday February 05, 2026 @10:28PM (#46908724)
Yes, 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.

Re:C Isn't a Language by mjg59 on Thursday February 05, 2026 @10:32PM (#46908761)
Yes! It's easy to see why we got here, but that doesn't mean it's the optimal outcome!
Re:C Isn't a Language by zorobo on Thursday February 05, 2026 @10:55PM (#46908909)
OCaml was used for rust.
Re:C Isn't a Language by Ygg2 on Friday February 06, 2026 @12:52AM (#46909583)
> 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).

Re:C Isn't a Language by thayne on Friday February 06, 2026 @01:17AM (#46909703)
> 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.

Re:C Isn't a Language by thezipcreator on Tuesday February 10, 2026 @04:51AM (#46957455)
> 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.

Re:C Isn't a Language by pjmlp on Friday February 06, 2026 @09:48AM (#46913480)
Rust 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.

Re:C Isn't a Language by Ygg2 on Thursday February 05, 2026 @10:05PM (#46908548)
> I don't see that as a problem.

It kinda is. Because it was made in the 1970s, and it shows (cough null-terminated strings uncough).

Or you know having a 64-bit wide integer. Reliably.

You did read the article, right?

Re:C Isn't a Language by pjmlp on Friday February 06, 2026 @04:14AM (#46910682)
Of some computing platforms.
Re:C Isn't a Language by SkiFire13 on Monday February 09, 2026 @02:02AM (#46942397)
You're still thinking of C as a programming language but the blogpost is not about this, it's about using C to describe interfaces between other languages.

> because it is the most minimal way of speaking to the hardware in a mostly portable way.

C is not really the most minimal way to do so, and a lot of C is not portable anyway unless you want to become mad. It's just the most minimal and portable thing that we settled on. It's "good enough" but it still has a ton of resolvable problems.