Why it is difficult to develope vaccines for some diseases
Answers
There are a number of factors. First, vaccines only work on viral or certain bacterial diseases. Anything genetic can’t be vaccinated against. (Note: you may have heard about a “cancer vaccine” in trials right now. More on that later).
Second, each vaccine defends against one particular invader. Anything with multiple variations, like the flu virus, is very hard to completely defend against. This is why you need a new flu shot every year: vaccine manufacturers make their best guess as to which strains of the virus will be circulating in 9 months time, and prepare the shot accordingly. Sometimes, like this year, they guess wrong. We are making progress on vaccines that target common features of something like the flu virus, making them more universal, but that is still in trials.
Finally, some viruses, like AIDS, are evolving very rapidly, making them a moving target. Even if we did prefect a vaccine that works now, it might not in a years time. To target these viruses, we would need a vaccine that programs our immune system to attack the virus at some constant structure, something that does not easily change with evolution of the virus.
Now, about that cancer vaccine: it’s not exactly a vaccine in the classical sense, it doesn’t prevent cancers. What it does is train the body’s T-cells to attack a rapidly metastasizing mass in a specific area, it has to be tailored to each cancer in each individual. As a result, it can’t be used as a preventative measure.