7 ms·
I don't usually like participating in bikeshedding, but the @ annotation feels like PHP's $ to me in that I don't see why it needs to exist. The language design
by 0x37 3y ago
I don't usually like participating in bikeshedding, but the @ annotation feels like PHP's $ to me in that I don't see why it needs to exist. The language design could've easily just left that out and I don't think anything would be lost.
Other than that, I'm definitely excited for Zig as a potential C++ replacement.
- kristoff_it 3y ago> I don't see why it needs to exist The symbol namespaces builtins, as those are the only identifiers that aren't declared in the file (either directly or by using `@import`).
- tialaramex 3y agoAlthough namespacing them keeps them out from under a programmer's feet, which is a significant benefit, it does seem like this would make it harder to find stuff. @cmpxchgStrong, @wasmMemorySize and @embedFile are completely unrelated, but since they're all builtins they're neighbours.
- Conscat 3y agoThis is sort of an issue we already deal with in other languages, and imo it's not a huge deal in those. Personally I find @ more reasonable than __builtin_
- tleb_ 3y agoMy belief is that it is about builtin functions that are provided by the compiler versus part of the standard library. They are documented in the language reference [0] versus in the standard library documentation [1]. [0]: https://ziglang.org/documentation/master/ https://ziglang.org/documentation/master/ [1]: https://ziglang.org/documentation/master/std/ https://ziglang.org/documentation/master/std/
- ptato 3y agoBuilt-in names are essentially reserved words, and there are dozens of them. The @ prefix ensures you don't step on user's variable names, and that you can add new built-ins without making breaking changes.
- andrepd 3y agoWhy aren't they simply namespaced, like `core.some_function`?
- nine_k 3y ago5 characters to type instead of 1.
- AnIdiotOnTheNet 3y agoBecause there'd need to be a magical exception for the "core" namespace that makes it not just a file of Zig code somewhere like every other module.
- deleted 3y ago[deleted]
- hiccuphippo 3y agoIsn't there already a magical exception for "root" and "builtin"?
- kristoff_it 3y agonot really, those are two modules that are always available to you, but you still have to import them like any other Zig module `const builtin = @import("builtin");`
- throwawaymaths 3y agoone side benefit is that at lot of @ code is "dangerous shit" so it draws your eye during code review. You will want to code review the "dangerous shit" that GPT-5 gives you.