I don't know if this post is referring to java.util.concurrent.Future or using statistical techniques to make projections. Since, I'm a show off, I'll talk about both

java.util.concurrent.Future represents the results of a background operation. WHen you start a job in the background using the Executor, the Executor returns a Future object that encapsulates the result of the background job. The result won;t be available until the background job is completely. It's not telling the future. It;s just a place holder for results that will be available after some time

We are actually getting very good at predicting the future in some cases. As the great Hari Seldon said "the behaviour of a mass of people is predictable if the quantity of this mass is very large". We did actually predict the future when the 509 blog predicted Obama's win in the elections with uncanny accuracy. They basically use statistical analysis techniques to identify variables that can predict how people vote, then used Monte Carlo analyses to make a prediction about the election. It was terrifyingly accurate, and outperformed human predictions. So, yes, in many ways, technology is helping us predict the future, and I am pretty sure Java has a big role to play with it.