4 ms·
"linear affine types" is an ambiguous term, but I believe Zig has them in the definition that you are using. Please be careful to get your facts correct. Misinf
by AndyKelley 8y ago
"linear affine types" is an ambiguous term, but I believe Zig has them in the definition that you are using. Please be careful to get your facts correct. Misinformation is harmful to society.
- dbaupp 8y agoI don't think either "linear types" or "affine types" (they're separate but related things) are ambiguous terms. Under linear typing, values must be used once, and under affine typing, at most once. Could you clarify the ambiguity you see, and how Zig has them?
- vmchale 8y ago> "linear affine types" It's "linear/affine types," not "linear affine types". Also: Zig doesn't have linear or affine types. You seem to be quite confused about PL theory, which frankly does not make me any more confident in the language.
- deleted 8y ago[deleted]
- coldtea 8y agoA little over the top with this criticism? Or, the other one: lack of affine/linear types is "inexcusable", really? As if these are so mainstream that any new language should have them? It's a new language, still in development, use it or not. Zig doesn't want to be a dumpster for trendy PL concepts. It has been designed to be a safer and friendlier C, not a simpler Haskell or Agda.
- floatboth 8y ago> given the current offering Current offering being of course Rust. Rust isn't a "simpler Agda" either. It is a safer C/C++ – as in bare metal capable, no GC, natively compiled… and affine types is what makes the safety possible.
- vmchale 8y ago> Rust isn't a "simpler Agda" either. Calling Rust a "simpler Agda" is a bit insane. Rust simply has a sensible, current type system. Agda is full dependent types.
- vmchale 8y ago> Zig doesn't want to be a dumpster for trendy PL concepts. It has been designed to be a safer and friendlier C Exactly why the project is pointless. It doesn't offer enough beyond C for there to exist any incentive to switch. I would add that affine types are not simply a "trendy PL concept" given that Rust has used them to great effect.