> So a hypothetical photon from the big bang (era?) gets observed now means the big bang is happening now?
Yes. More specifically, the big bang would be happening now, at the location from where we perceive that photon. Hey, this stuff is not intuitive.
However the early universe absorbed all the big bang photons. The furthest back we can observe photons from is the CMB. And yes, the phase change is happening now, there... Complicated by the Hubble expansion of course.
> A dinosaur decays to bones and now gets observed means the dinosaur died just now - not that it died millions of years ago?
No, that is incorrect. But you already knew that. Analogies don't work for light and for time and for relativity - it is too different from our everyday experiences for analogies to hold.
> Fast forward to 2006. I was shocked to learn that the binary search program that Bentley proved correct and subsequently tested in Chapter 5 of Programming Pearls contains a bug. ... Lest you think I'm picking on Bentley, let me tell you how I discovered the bug: The version of binary search that I wrote for the JDK contained the same bug. It was reported to Sun recently when it broke someone's program, after lying in wait for nine years or so.
IIRC it was overflow when you do (a + b) / 2 for the midpoint. It took so long to find because you need a >billion item array to overflow the 32-bit integer, and that much RAM wasn't common until the 00s.
TCO is surprisingly commonly supported in the real world. TCO is supported in C++ compilers, JavaScript in Safari, Scala, Clojure in a way, etc.!
For instance:
"All current mainstream [C++] compilers perform tail call optimisation fairly well (and have done for more than a decade), even for mutually recursive calls" [1].
"As of July 22, 2023 Safari is the only browser that supports tail call optimization" of JavaScript [2].
"Since Clojure uses the Java calling conventions, it cannot, and does not, make the same tail call optimization guarantees. Instead, it provides the recur special operator, which does constant-space recursive looping" [3].
"The Scala compiler will automatically optimize any truly tail-recursive method. If you annotate a method that you believe is tail-recursive with the @tailrec annotation, then the compiler will warn you if the method is actually not tail-recursive" [4].
Just to see if I understand what you’re saying…
So a hypothetical photon from the big bang (era?) gets observed now means the big bang is happening now?
A dinosaur decays to bones and now gets observed means the dinosaur died just now - not that it died millions of years ago?
(Dinosaur = photon from a star or something. Decay = red shift. Or a real dinosaur— guess it’s the same now.)