Depending on your outlook, here's some good or bad news: the future is irreducible. What I mean is that the future is, in an essential way, unknowable. It cannot be reduced to algorithmic understanding or predictive models.
You and I, will, on some level, always be guessing. We don't have all the variables, we never will, and even if we did, the future will be irreconcilable from the present, and especially from the past.
Humanity has a long history of searching for an oracle. We are a collectively curious, but anxious species.
Religiously, we've looked for telltale signs, prophesies or omens. Scientifically, from the dizzying matrix of existence, we've strung out threads of knowledge. And some of these are even powerfully predictive (e.g. movement of celestial bodies).
Despite this progress, the vast future across all domains remains, in the truest sense, unknowable. Why? There is irreducible uncertainty in systems that can only be modeled probabilistically.
In the physical world we have to deal with a hazy cloud of possible outcomes all the time. Weather systems are a prominent example.
Despite knowing how these systems work on a physical level, their behavior is nonlinear and is very, very sensitive to initial conditions. We can work on the reducible uncertainty portion of this problem, i.e. add more sensors, collect more data points in the atmosphere, the oceans, etc.
This helps us better understand the initial conditions, and helps predict what will happen in the near future with a little more confidence. However, the uncertainty compounds exponentially the farther you move away from those initial conditions, quickly dissolving confidence in our predictions.
There are many systems that don't behave nearly as chaotically as weather, yet remain subject to irreducible uncertainty. The computer is one of those systems. It is an unbelievably reliable invention.
We can almost always predict that the computer will do what we tell it to do. Yet, on its most essential level, at the bitwise operator, a computer can be affected by chaotic natural phenomena.
The typical way a computer stores bits is with a transistor gate, marking the presence or absence of voltage as a 1 or 0, respectively. If rogue electrons flow through this gate, they could unexpectedly flip the bit from a 0 to a 1 or vice versa. Too much heat or faulty hardware can cause such an error, known as a bit-flip.
But so can the magnetic field created as cosmic rays hit the transistor. Because outer space is awash in cosmic radiation (and other risk factors), spaceships minimize risk with redundancy in their physical computer systems, sometimes employing 5 computers.
If there's a discrepancy in the expected output at any given time, the computers tally what their outputs are showing, and proceed with majority agreement.
While the frequency of these cosmic rays can be modeled probabilistically, the observer remains fogged in a gray area of uncertainty. We'll never know exactly when one of these randomly occuring events will actually occur.
So even for our most robust input/output machine, operating on a millisecond-into-the-future time scale, we cannot be 100% certain it will provide us with the future outcome we predict / expect. Wild.
Sometimes, it can feel like we're gaining immense amounts of knowledge, so much so that the future is in our grasp. While we've absolutely made progress peering a little ahead, it's important to recognize that any prediction is wrapped in uncertainty.
It can be humbling to realize this, but ultimately it's also the source of our freedom, our ability to stray from predetermined lines and squiggle our own paths into the future.
Stephen Wolfram's interesting take on the phenomenon of free will and how it relates to computational irreducibility
Vinod Wadhawan's blog discussing natural phenomena and Laplace's demon