Friction in programming language design

This would essentially allow any function to silently ‘throw’ errors

How?

The compiler knows if a function throws an error. How is it silent?

A key key capability that zig has - ZLS.

I totally understand why we, as people, may want to see the try, the !, etc. The challenge is…do we really need a person to instruct the compiler what it already knows? Isn’t a human repetition of compiler knowledge a greater opportunity for error?

An IDE could very easily render all the inference needed … it works great w/inferred types, parameter names, etc. Let’s spare the person and make the machine do all the work!

ZLS → IDE could easily render, in a suitable light color, the inferred try; the inferred !; the inferred error set. With this configuration, there is no functional difference. Could zig fmt “auto fmt” on save? Sure…could it be a build option? Sure…I understand there are cases where you want more explicit, less inferred.

But…there are a great deal of cases where inferred is preferable.

Does this change any code already written? No…I am not sure how hard it would be to do. I really really like ZLS and an IDE that renders all the inferences so far, completely the cat’s meow…