Re: OT: Language War (Re: "C" Manual)
William, Richard, and all:
Stroustrup has said that if you find you have to cast, (much) your
design is flawed.
--David Teague
On Tue, 1 Jan 2002, William T Wilson wrote:
> On Tue, 1 Jan 2002, Richard Cobbe wrote:
>
> > > | Casting you can't really get away from nor do you really need to. In fact
> > > | the more strongly typed the language is, the more casting you have to do.
> > >
> > > This statement is incorrect.
> >
> > Agreed.
>
> I suppose I will agree as well, I was not meaning to include dynamically
> typed languages in the original statement, I just didn't say that :}
> Really it was not a very good statement to make, although in the original
> context it wasn't so bad :}
>
> > However, I think that the flexibility of a type system is more
> > important than its `strength' for removing the need for casts.
>
> I will go along with that as well. In ML for instance (and other
> languages as well) there is parametric polymorphism which give you a lot
> of the flexibility of dynamic typing while still retaining much of the
> error checking of static typing. This is different from the
> "polymorphism" found in C++ in which you can have virtual functions (which
> still require the programmer to provide all the different implementations)
> and inheritance (which only permits polymorphism within a very limited set
> of types). Although I do not know Haskell my understanding is that this
> is how it works as well.
>
> For instance you could have:
> fun times x y = x * y;
>
> You could then apply this function to either reals, ints, or one of each
> and then it would return the appropriate type. The compiler will trace
> the execution through the function, deducing which are legal types from
> the operators and functions used within the function. In this way you do
> not need to write a separate function for each combination of types your
> functions might want to operate on, even though ML is a statically typed
> language.
>
> But because the checking is all done at compile-time you do not have much
> risk of runtime errors due to type problems.
>
>
> --
> To UNSUBSCRIBE, email to debian-user-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
>
--David
David Teague, dbt@cs.wcu.edu
Debian GNU/Linux Because software support is free, timely,
useful, technically accurate, and friendly.
(I hope this is all of the above.)
Reply to: