> It is not necessary to try and quantify how many
> bugs are caused by the lack-of type-checking for
> three reasons:
>
> 1. It may not matter based on the type of application
> or system your are building.
Huh?
> 2. The answer is greater than 0.
I disagree. It has to be enough to justify the drawbacks. If you are going to write an program with 1000 bugs in one month using Java or C#, versus writing the same program with 1001 bugs in one week using Python or Ruby, which is better? You've got three extra weeks of testing to find one bug.
Anyway, how do you know that compile-time type checking
reduces the number of bugs? Maybe it just changes the nature of bugs.
> 3. I can program in languages with strong typing.
> I don't consider this overly burdensome. In fact,
> I would love it if Python included this as an
> optional feature.
I would too. Interfaces would be a very nice addition too (see Frank Sommers' post above).
But let's not confuse strong typing with dynamic typing; Python does have strong types, just not declarations and compile-time checking.
> As an illustrative example, there has certainly been
> widely publicized bugs relating to bad data and
> mismatched types. One in particular in the
> Mars Lander -- see
>
http://mars.jpl.nasa.gov/msp98/news/mco990930.html.
I looked briefly, but I couldn't see where the problem was based on using a dynamically-typed language. Are you saying the lander software wasn't written in a statically-typed language and rewriting it in one would have eliminated that bug?