4 ms·
At this point &var and *var are pretty much an established way across languages, like if-else. I don’t see any benefit of reinventing this paradigm.
by FlyingSnake 2y ago
At this point &var and *var are pretty much an established way across languages, like if-else. I don’t see any benefit of reinventing this paradigm.
- epolanski 2y agoThe fact that the author of Zig who's extremely well versed in C and C++ went this way should make you at least try to think why he went that way before dismissing it.
- FlyingSnake 2y agoSounds like Appeal to Authority fallacy.
- xigoi 2y ago> Copying bad design is not good design. —Andreas Rumpf
- nineteen96 2y agoAgreed. And p.* is remarkably unintuitive and nonsensical compared to *p.
- int_19h 2y agoIt's remarkably intuitive and sensible if you remember that . in Zig auto-dereferences for field access and then treat `*` in this construct as field name denoting the entire object. Ada does the same exact thing, except there you write `p.all` instead. In any case, while the exact syntax may not be ideal, using a postfix operator for dereferencing is vastly better than prefix in practice due to typical patterns of use. There's a reason why you end up writing () a lot in C code with heavy pointer operations - the things they end up mixed with most often turn out to have the wrong kind of priority and/or precedence more often than not. Things are much simpler when everything is postfix and code reads naturally left-to-right.
- IshKebab 2y agoIt's not at all unintuitive of nonsensical. You're just really used to *p because it what C uses.
- wruza 2y agoYou mean like if-else if, if-elseif, if-elsif, if-elif? I think I should use eif for my next language. You can have elsf and elf. It’s not that important though. Many people write two or more languages without mixing the syntax. p.* and lv.& would be good post-operators, imo. Less going left and parenthesizing.
- FlyingSnake 2y agoBut those are all variations of if-else, right? The alternative to if-else would be something like `assuming-otherwise`. The point was that there wasn’t really a pressing need to reinvent the *p/&p syntax.