Comment by 8n4vidtmkvmk

11 hours 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.

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

  • "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).

Having to support legacy code is a bummer. /s

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