dynamic typing question

John Roth newsgroups at jhrothjr.com
Fri Dec 26 16:20:59 EST 2003


"Hung Jung Lu" <hungjunglu at yahoo.com> wrote in message
news:8ef9bea6.0312261227.56ade9a9 at posting.google.com...
> claird at lairds.com (Cameron Laird) wrote in message
news:<vuojf5kc3v1lca at corp.supernews.com>...
> > 1.  Why, in your mind or your teammate's,
> >     is dynamic typing a "lack"?  What, pre-
> >     cisely, is the benefit of static typing?
> >     There are a number of legitimate
> >     answers.  It occurs to me that, without
> >     precision on which interest you, we
> >     might be missing an opportunity to
> >     clarify "The Python Way" significantly.
>
> One static typing advantage I've run into:
>
> When you change the name of a variable in a class, and re-compile the
> program, the compiler shows you ALL places where compilation fails.
> These could be hundreds of places in dozens of files. In dynamically
> typed language like Python, you have to rely on text search, which
> often yields many false positives, especially for common/overloaded
> names like .count, .name, .type, etc. In statically-typed languages,
> making name changes is not very painful, since the compiler will tell
> you where exactly you need to follow up with the changes. In
> dynamically typed language, you will have to manually write unit test
> codes to ensure name consistency.
>
> I am sure Python people have come up with strategies to deal with this
> problem. That's what I'd like to hear. (Unit test is one route.) But
> this is one place where I've found statically-typed compilers useful.
> I mean, I have seen this discussion many times, but most responses
> from Python users have not been realistic (often simply shrugging off
> the problem and saying something like "compilers don't detect all the
> bugs, blah blah blah".) I would like to hear more real-life experience
> rather than academic conjectures.

The OP said they would be using Test Driven Development. In TDD,
you write maybe a half dozen lines before running your test suite. If
it ran last time, and it didn't run this time, then you have maybe a
half dozen lines to check. Lots of people regard the 'undo' command
as a great debugger in this case.

Of course, if you write hundreds of lines before doing a compile,
then you will need all the help you can get.

John Roth
>
> regards,
>
> Hung Jung






More information about the Python-list mailing list