Are we still talking about COBOL?
To be fair, I disagree with all the points author makes, except for performance which is important but may be less important than code clarity in different cases. I am surprised that exceptions perform that well, and I am surprised the author said that compared C++ exceptions to Rust results, but actually did the right thing and compared C++ exceptions with C++ expected first. I thought it was going to be one of those "let's compare assembly to lisp"
Yeah, I shaped my words poorly. What I meant is that errors are sort of equivalent to exceptions, but errors are first class citizens of type system, and this is an improvement over exceptions being kind of independent of type
Have you ever worked at large old corporation? Wasting money is a bit of an underestimation on that scale.
Also, not all banks use COBOL, but the ones that don't are usually much younger.
Besides, Ada would've been a better example, as it is used by telecoms and seems to be held in high regard, unlike COBOL. The only issue with Ada I heard of is that it's on par with C++ in complexity which is far from being simple.
I'm just going to ask, without making assumptions. Have you managed to cut some time to read the article and find an answer?
you never know what code your function or library calls that can produce an exception
As far as I remember, there were several attempts at introducing exceptions into type system, and all have failed to a various degree. C++ abandoned the idea completely, Java has a half-assed exception signature where you can always throw an unexpected exception if it's runtime exception, mist likely there were other cases, too.
So yeah, exception as part of explicit function signature is a vast improvement, I completely agree
I feel like this will have zero protection against
if (result.isSuccess()) {
handle_error(result.error);
} else {
do_something(result.value);
}
Besides, this is exactly what the comment said about having to constantly check for return values at call site. I think this may be mitigated by some clever macro-magic, but that will become a mess fast.
It's used because the ones who use it have enough money to pay for any problems that may arise from it's use, and known problems are deemed better than unknown ones.
It is a viable model when you have enough money and resources, but a conservative one
it's one of the most popular languages used for C/C++ build scripting
Unfortunately 😅
That way we'll just find maintainers went near extinct over time, just like COBOL developers that are as rare as they are expensive. Only Linux kernel isn't a bank, and maybe will not have as much money to pay to rare developers capable of maintaining C codebase
Well, as they say, "common sense is not very common", but thinking a bit before rushing in may always do good.
::: spoiler about the "quote" It actually should read
It is sometimes said, common sense is very rare
as written by Voltaire, it appears, but I didn't know that and only met derivatives of this quote.
It's the number of the signal sent, 9
is for SIGKILL
. You can send various signals with kill, and depending on how application was made it may react on all signals with dying, or meaningfully process most of them. Afaik, SIGKILL
can't be processed by the app, and it always means just that: "die already".
Checked in Wikipedia, that's about right but there are more details I left out, mostly because didn't know about them, too: POSIX signals