That Niko's text-arrow lifetime annotations are so helpful here suggests a rust IDE could offer similar highlighting or annotations to explain borrow checker errors.
One of the ergonomic hurdles to rust adoption by experienced C++ users is that the language looks similar enough that such people may think they fully understand the semantics even before they've fully internalized all the details. It's a tricky zone when something feels familiar enough that you don't realize the remaining mistakes in your conceptualization.
At this very moment there is a PR from Niko that is about to land that will overhaul borrow checker error message reporting (and error formatting in general): https://github.com/rust-lang/rust/pull/32756 .
You are not alone. If you look at the "target retirement date" funds Vanguard etc. run you'll see that by the time the target date is 5-10 years out they have shifted largely to bonds to provide defined income.
Anything with low-effort access will always connote little value in people's minds because endless alternatives exist. Anyone who wants to get paid for doing something hard should avoid channels like that, or only use them to float associated freebie products that can introduce people to the real product.
> If you could point me to a single bank president who says
Why do you think they would say what their true goals are to you? People in positions of power are extremely judicious and strategic about what they say and to whom. They get daily exercise in this and only the best survive. The most effective are excellent at pursuing their goals while maintaining a socially credible exterior. The less effective use coded language (corpspeak or political rhetoric) to try to hedge through via indirection.
Neat stuff. It's worth noting that shadow rays don't entirely avoid precision issues either. You still need to handle self-intersections. One option is to add a bias epsilon (which introduces other artifacts, depending on the scale); another is to reject local self-shadowing (which means you can't get finely shadowed surface cracks); another is to give artists explicit control over which sets of objects shadow which others (which adds artist time). Offline rendered movies use all of these.
Generally speaking, the biases needed for ray-tracing are much smaller than the biases needed for shadow mapping. Ray-tracing tests directly against the geometry so only needs a bias proportional to the numerical accuracy used, whereas shadow mapping requires bias proportional to the texel resolution of the map.
While these are all potential solutions that also are the same as in shadow buffers, you have the additional ability to play tricks such as, skipping intersection with the casting triangle, and similar tricks that solve the problem much more completely, if at a performance cost.
Isn't that what an option represents? The freedom to choose later is the inherent value of the option.
And that value isn't acquired risk free: it's compensation for putting time in in lieu of salary.