There’s a rigorous way to see that there must be certain questions about the weather that can never be decided by computational means. First, in the long term, dynamic systems settle into a set of trajectories in their phase space, the so-called ‘attractor’. In the case of the weather, some points of that set might correspond to sun, others to rain. Thus, predicting the weather is predicting where in that attractor the system will end up.
This is subject to chaos: for arbitrarily small perturbations of the initial state (variances in the exactness with which the weather right now is known), predicted future states eventually diverge arbitrarily far. But things are actually worse: the attractor of a chaotic system is a fractal set, i.e. has a non-integer dimension. But it can be shown that the question of membership in such a set is undecidable—i.e., there exists no algorithm that takes a putative state of the weather in the future, and is able to decide whether it lies on the attractor—whether it will actually ever occur.
This is equivalent to the famous halting problem, which is the problem of deciding whether an arbitrary computation ever stops and produces an answer. Indeed, the halting problem can be viewed as deciding membership for a certain fractal set.
This sort of problem also pops up for AI and autonomous systems, although it’s practical relevance isn’t clear. in principle, you can never know if any program does what you intend it to do: this is Rice’s theorem. The proof is, essentially, that if you had a procedure to check whether a given bit of code computes the first ten digits of pi (or anything else), then you can solve the halting problem—by creating a program that computes the first ten digits of pi if a given other program halts, and feeding that to your checker.
This seems a bit ridiculous: we create programs where we know what they’re gonna do all the time. But this is not in tension with the above claim: we simply can’t give a procedure that does so in every case, but that’s not in opposition to doing so in a lot of cases of practical relevance.
But still, the basic point, as such, remains: there will always be questions about complex (and in practice, that often means quite simple) systems such that there is no general way to find their answers (as long as you’re limited to computational means).