I stopped reading at "strong typing". (well, not really... but I started typing this comment roundabout there)<p>First of all, what he describes is not called strong typing, it's called static typing. Ruby, for example, has strong typing (every object is one type and one type only), but not static typing (you don't declare the type of an object when you declare a variable).<p>Secondly, there are many powerful languages that don't have static typing. Is the author implying that those languages are inherently buggy?<p>Thirdly, the author is not advocating what he declares in the title. He proposes methods to catch bugs, not to avoid them. His methods are also flawed in that redundancy does not ensure bug-free code - only that you haven't made any silly mistakes in your coding. Bugs come from all sorts of sources, and "code typos" are only one minor source. Other sources include: maintenance changes (which cause unforeseen effects that were not previously covered by tests), design flaws, and changed external circumstances. None of those are covered by the technique he lists.<p>Sorry, but this is just a poor attempt to capitalise on a catchy title. Nothing to see.