In article <firstname.lastname@example.org>, email@example.com says...
>Jack Jansen <firstname.lastname@example.org> wrote in article <email@example.com>...
>> ...With languages like Python or Tcl, with
>> no interface definitions whatsoever, you can only *hope* that you use
>> every interface correctly. I work on a largish project in Python, and
>> the one thing that gives continuous headaches is the lack of interface
>> definitions. Whenever you change an interface it is very very
>> difficult to check that you haven't inadvertantly broken something.
>This what the regression testing is for, isn't it ?
if by regression testing you mean running it over and over and hoping someone
spots something going wrong - no.
i remember a program i had to keep interfaced with a library made by someone a
dozen VFPs away, in C. it had one function which took about 18 parameters in
version A, 20 in version B, and 25 in version C... and he didn't provide a
prototype in this header file. obviously he was a crap programmer, but that's
not the point; he wasn't using the features of the language which would have
told me "hey, your interface doesn't match"... the consequences of not setting
those parameters were minute and tended to affect things a long way away from
the function call itself. running the pgm over and over wouldn't tell
you exactly what went wrong, assuming it even *noticed* something wrong.
of course, my example also points out how the best typing features of a
language are pointless if they don't get used... perhaps, finally, it's a
people issue, not a language issue.