Jay, The point of doing compile time and test time checking is the same reason militaries use layered defenses: More problems get caught. I've written tons of software tests and architected a testing system for an entire aircraft. I've also watched lots of errors get by tests.
Also, compile time errors get caught sooner. They get caught before tests even get written. Plus, tests become just another layer that needs testing. They also become another layer that can get out of synch with the rest of the software. As for casting away type safety: Sure, you can make C/C++ type unsafe. But that's optional. You can use the type safety if you want to. Most peope use the compiler's type checking because it is more effort to cast away type checking than it is to use it. -- http://mail.python.org/mailman/listinfo/python-list