News for hackers. Stuff that matters.
Re:Why I rewrote my Rust keyboard firmware in Zig: consisten... by otabdeveloper4 on Sunday March 07, 2021 @12:55PM (#26377972)
C++ is closer to ML than to C.
Re:Why I rewrote my Rust keyboard firmware in Zig: consisten... by c-cube on Sunday March 07, 2021 @07:43PM (#26381214)
Definitely not; what do they have in common beyond being statically typed and compiled?

Where they differ: memory safety, sum types (don't tell me std::variant is a valid replacement), move semantics, having pointers, classes, GC vs RAII, statement vs expressions... That's a lot of differences.

Re:Why I rewrote my Rust keyboard firmware in Zig: consisten... by otabdeveloper4 on Monday March 08, 2021 @12:19AM (#26382506)
> ...beyond being statically typed and compiled?

What do you mean 'beyond'? It's not like there are many other languages that have compile-time polymorphism. (Java, Go, C, etc., don't.)

> memory safety, sum types (don't tell me std::variant is a valid replacement), move semantics, having pointers, classes, GC vs RAII, statement vs expressions... That's a lot of differences.

ML ignores the real performance and architecture considerations, so yeah, of course it is a simpler and more 'elegant' language. As a teaching aid, yeah, I think all C++ programmers should be forced to program something in an ML-derived language.

But once you start handling the real-world edge cases and requirements you'd end up in a place very similar to C++.

Re:Why I rewrote my Rust keyboard firmware in Zig: consisten... by c-cube on Monday March 08, 2021 @09:47AM (#26386310)
> What do you mean 'beyond'? It's not like there are many other languages that have compile-time polymorphism. (Java, Go, C, etc., don't.)

Java does, it's called generics. Also D, rust, Ada, free pascal, nim, and most statically typed languages from the last 3 decades (even Go is finally getting them ). Still can't see why C++ is closer to ML than C, since it's literally an almost compatible superset of C.

Re:Why I rewrote my Rust keyboard firmware in Zig: consisten... by otabdeveloper4 on Tuesday March 09, 2021 @05:44AM (#26397453)
> Java does, it's called generics.

No, Java is still pointers to Object and dynamic dispatch under the hood. Generics didn't change this at all.

> Still can't see why C++ is closer to ML than C, since it's literally an almost compatible superset of C.

ATS is also 'literally an almost compatible superset of C'.