I've been working with computers since the old Burroughs mainframes that used keypunch to enter the data, way back in 1968. The one thing I have found is that it is darn near impossible to write a program that is not hackable.
I know people point to Linux as unhackable, but I don't believe this. Virus/Worm/Trojan writers want to disrupt the most lives they can. To do this, they must write for Microsoft which is undoubtably the largest software company. I've worked in shops that used programs designed as Linux/Unix, but still when it came to the desktop what do I see, Windows. Why, because people want instant and easy both, and they don't want to learn new things. Most of the worms, viruses, and trojans that have hit had a patch that would have stopped it had a user kept up with the updates and patches.
As an IT professional, I make sure all of the departments I work with have the updates and patches installed, and at home I do the same. My son has a computer, and he maintains his the same way. Users must learn that if they want the convenience of the computer, they also need to take the responsibility of having one also. It's easy to point the finger, but remember when you point a finger at Microsoft, four are pointing back at you.