[
Lists Home |
Date Index |
Thread Index
]
I think this entire discussion risks going into very unproductive ways.
Instead of trying to drag up random anecdotes and argue via emotion, let's
notice a few things.
First, there are errors than can be caught by types (10+"10" is caught by
python, not perl, and as we all know "10" in binary is different than 10
in decimal) and errors, particulary modelling errors, that cannot be
caught by types (Leaving the moon out of a missle defense program, causing
a missle to fire when moon appears).
Static typing allows type-related errors to be caught earlier at
compile-time, before runtime, although it may lead to more verbose code
(unless templates and type inference is properly done in the language).
This may also lull programmers into thinking that a program that has no
type errors has no modelling errors, which is often not true. A
programming language that features quick development time and lets a
programmer focus on catching modelling errors via unit testing is also
another way of catching errors, although it forces a lot of what could be
type errors to be caught at runtime. However, I would say that both types
of error testing (what I call "type" and "modelling" errors) are needed,
and a programming language or data format (ala XML) should allow the user
both, if needed. As someone said - I forget exactly who - static typing is
great if possible, and dynamic typing is great when needed. Neither should
let anyone focus on a false sense of security. Although, at least for
myself, I'd definitely feel more secure with proof-carrying code and
typing. And I also like Python since it scales very well and produces
reliable code quickly - partially due to a clever strong yet dynamic
typing. There is probably a middle-ground here....
I don't see how restricting the features of a langauge (either *forcing* a
programmer to use types or *forcing* them not to) makes a language or data
format more powerful. Why not just let the users have options? Then, it
seems at least as XML is concerned, is that those of us who think typing
is useful (albeit a small minority on this list) would like to see some
good, extensible type system (although no-one seems to have any good ideas
on this list), and those that don't want one should not be forced to use
it. I think that sums up my point of view, and again, taking away a user
or programmer's options is never a good thing - the trick is making the
options easy to decouple, easy to use, and powerful - all easier said than
done :)
> On Tue, 2005-01-04 at 16:27 -0800, Daniela Florescu wrote:
>> I don't
>> >think I can recall having *ever* had a program fail because someone
>> >passed a float to a routine that expected an int.
>>
>> Really !?
>>
>> For an impressive example, just take a look at this:
>>
>> http://www.ima.umn.edu/~arnold/disasters/ariane.html
>>
>> $7 billion dollars lost in an explosion after only a couple of seconds
>> in flight. More then 10 years of work for tens of thousands of people.
>> Fortunately no human loses.
>>
>> My lab at that time (INRIA) was tasked to read the millions of lines of
>> code.
>> There were many problems found, but the cause of the explosion
>> was an unfortunate type conversion implicit in a function call if I
>> recall
>> correctly.
>
> No. This is an urban legend ("cubicle legend"?), which I've had trotted
> out before in this argument. I think it's a nice illustration about why
> people with a strong typing mindset have a compulsion to try to express
> all problems they see in terms of strong types.
>
> The problem was a *units* conversion error, not a type conversion error.
> No strongly statically typed language that I know of would have
> prevented it.
>
> It's a perfect example of the fact that most real-world bugs are caused
> by value mismatches, not type mismatches.
>
>
> --
> Uche Ogbuji Fourthought, Inc.
> http://uche.ogbuji.net http://4Suite.org http://fourthought.com
> Use CSS to display XML -
> http://www.ibm.com/developerworks/edu/x-dw-x-xmlcss-i.html
> Full XML Indexes with Gnosis -
> http://www.xml.com/pub/a/2004/12/08/py-xml.html
> Be humble, not imperial (in design) -
> http://www.adtmag.com/article.asp?id=10286
> UBL 1.0 - http://www-106.ibm.com/developerworks/xml/library/x-think28.html
> Use Universal Feed Parser to tame RSS -
> http://www.ibm.com/developerworks/xml/library/x-tipufp.html
> Default and error handling in XSLT lookup tables -
> http://www.ibm.com/developerworks/xml/library/x-tiplook.html
> A survey of XML standards -
> http://www-106.ibm.com/developerworks/xml/library/x-stand4/
> The State of Python-XML in 2004 -
> http://www.xml.com/pub/a/2004/10/13/py-xml.html
>
>
|