Our great sponsors
-
zig
General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
tigerbeetle
Discontinued A distributed financial accounting database designed for mission critical safety and performance. [Moved to: https://github.com/tigerbeetledb/tigerbeetle] (by coilhq)
Thanks, that was a nice talk.
But the answer there is basically, "if you care about payload, don't use zig's built-in error handling." Which, obviously, you can do, but I'm not convinced it's a great answer!
Even for something as simple as parseInt, it would be nice, I would argue, if it returned, along with InvalidCharacter, _which_ character was invalid. This would enable e.g. very precise indications in messages to the end user of what was wrong with the input.
In general, because currently it's super-ergonomic to return just error codes but more of a pain to return errors w/ payloads, what you'll get in practice is no error payload even when it would be useful, which will end up turning into less-helpful-than-ideal errors for end users, which is contrary to zig's goal of enabling the creation of perfect software. :-)
I found this thread interesting
https://github.com/ziglang/zig/issues/2647
Not "serious" at all but I wrote a Pacman clone over the holidays as an excercise and test for my cross-platform C header bindinds:
https://github.com/floooh/pacman.zig
...and before that I did the same in C99 (might be useful for comparing the languages):
https://github.com/floooh/pacman.c
Disclaimer: I'm not a Zig expert at all, and the project doesn't really require most things where Zig differs from C. But I think writing small and "for-fun" projects like this is important for getting used to a language. I think one of Zig's big qualities is that it is so straightforward, after a few hundred lines you hardly have to look up things in the language documentation anymore.
TigerBeetle: https://github.com/coilhq/tigerbeetle
We're serious in the sense of very much alpha, and with a long way to go, hopefully intersecting with Zig's stability program... but we have some demos and benchmarks in there of using Zig for io_uring.
Can this be also on learnxinyminutes.com (https://github.com/adambard/learnxinyminutes-docs) ?