As many indicated here, it is very hard (if not impossible) to write programs with absolutely no security holes. The easiest solution is to allow for diversity, thus minimizing potential damage:
"The fewer distinct organisms at work within this ecosystem, the easier it is for a bug--any bug--to become a threat to the health of the whole. "
If: "fewer distinct organisms" ==> "easy threats on whole"
than: "no easy threats on whole" ==> "more (no fewer) distinct organisms".
(Logic 101)
In order to allow for diversity, you need to support open standards. If people are free to choose which applications they use for their email, web-browsing, and document writing (etc.), they would probably choose to use many different utilities. For instance: if my organization uses POP3, I am not relying on any particular server/client to use it.
In the *NIX world the open standards paradigm is governing... but is it so in the MS world? Forcing everyone to accept your "Total Domination" by using proprietary protocols/formats has its price. Maybe it is time to start playing ball with others?
than: "no easy threats on whole" ==> "more (no fewer) distinct organisms".
(Logic 101)
In order to allow for diversity, you need to support open standards. If people are free to choose which applications they use for their email, web-browsing, and document writing (etc.), they would probably choose to use many different utilities. For instance: if my organization uses POP3, I am not relying on any particular server/client to use it. In the *NIX world the open standards paradigm is governing... but is it so in the MS world? Forcing everyone to accept your "Total Domination" by using proprietary protocols/formats has its price. Maybe it is time to start playing ball with others?