top | item 46742052

(no title)

8n4vidtmkvmk | 1 month ago

I'm quite happy to NOT have exceptions. I think they're a mistake as a language feature. What we need is first -class support for returning errors and propagating them, like what zig does. The next best thing are those RETURN macros that Google uses.

discuss

order

direwolf20|1 month ago

Isn't that equivalent to exceptions but more verbose and slower?

invl|1 month ago

"first-class support for returning errors and propagating them" certainly sounds like exceptions! In fact, the compiler can even emit special tables that let the runtime completely skip over stack frames that don't need to do any cleanup during that propagation step!

Some languages have even innovated new kinds of exceptions that you can throw but that you are admonished should almost certainly never be caught.

Unfortunately even this is also better for tool support, a problem that using a bunch of macros solves. It's cool and good when a variable gets declared inside the guts of some macro expansion (and--critically--escapes those guts).

hdjrudni|1 month ago

Deliberately more verbose. Not sure how it'd be slower. And only a tiny bit more verbose if the language has nice keywords/syntax for you to use. The point is you want to be explicit when you're choosing to ignore an error.

pjmlp|1 month ago

Having to support legacy code is a bummer. /s

Zig remains to be seen how market relevant it turns out to be.

hdjrudni|1 month ago

Ya, we don't know yet. Still sitting on zig but I like what I see so far.