One of the hardest things to grasp in computer science: Caching things is synonymous to predicting the future. How do i tell if i need to get what i just cached again? You make an educated guess. Or you let a human decide. I think we’ve all fallen into the trap of thinking computers should be ‘smart enough’ to deal with these sort of issues by now. I mean, how many times have i heard someone say we have more power in a calculator than the first computer in the space mission thingy. But the problem is just as philosophical as it is technical:
Computers will only ever be as capable as the person who programmed them.
Now i know I’ve just triggered a flame war, However as of writing this, that flame war will mostly consist of two random people who may or may not read this article, so I’m not afraid. As much as we’d like to actually believe Robin Williams could become human one day, we cannot pass the logical fact that every single line of code was written by a human being (Including dynamically generated code, i.e there must be a template of what code should be generated that is written by said homo-sapien).
Therefore, Computers are still subject to the same problems that humans are. Albeit computers can arrive at the problem faster and can store more problems than we could, but if we have trouble doing something, chances are a computer would too. That’s why caching is a hard problem, because in reality, we can’t arrive at a general solution ourselves. But we can guess, because of one significant difference between man and machine:
Humans are driven by intuition and context, Robots are driven by algorithms and limited input.
Although my fellow robotic counterpart can generate a gazillion prime numbers per minute and show me the best route from my current location to McDonald’s, It’s quite limited in what it can take in. Humans however are masters of context, Not only do humans take in the sights, sounds, tastes, touch and emotions of what is around them, but they can know the history of what is around them, they can think abstractly about their surroundings, they can make arbitrary links with whatever they please around them.
Thus when posed with the common conundrum of caching, Humans can reason about it where as computers cannot. If i get a letter with no date on it stating that war has broken out in Europe and Hitler is running amok, I could use reason through context of history, the oldness of the letter itself, and common sense to detect that maybe this information is out of date.
As soon as information is cached, It becomes out of date
we can’t predict the future, and we don’t have control of all external forces, therefore apart from the most trivial pieces of software, we are only ever guessing. That is why for the most part, get a human to make that decision. I.e. Refresh the page, fetch the link, reload whatever, because we were born to do it. Its in our nature to explore new things and process them accordingly.
AI is an exciting thought, but computers are made to do things that we know, not what we don’t know. If something new appeared before a machine, how would the machine tell whether it is relevant and useful and not just white noise? It can’t, But we can. our senses are bombarded with stimuli and for the most part we successfully filter out what is relevant and what is gobbldiegook.
Also, I love Flight of the Conchords.