Typing system vs. Java
Jonathan Hogg
jonathan at onegoodidea.com
Tue Jul 31 03:34:33 EDT 2001
In article <mailman.996524288.7635.python-list at python.org>,
<brueckd at tbye.com> wrote:
> Others on here have pointed out that using C++/Java as an example of a
> strongly-typed language is a mistake, so maybe my opinion is closer to
> "the typing systems in C++ and Java tend to cause me more work and
> problems" and not strong, static typing.
Bingo. This is Java's fault for not having parametric polymorphism
rather than a problem with strong static typing per se. In my opinion
it's unfair to lump C++ in with Java since C++ at least has templates to
do this sort of thing.
Maybe I just haven't been writing large enough programs in Python, but I
don't feel that I hit many errors where I think "damn! I wish the
compiler had picked this up for me". I'd be interested in other people's
opinion on this. (And I've programmed plenty in Haskell so I know a
strong static typing system when I see one.)
I can though, think of plenty of places where strong static typing would
defeat intentional exploitation of the dynamic typing. Maybe this is
poor programming on my part, but I can't even think how one would type a
function like say:
def f(zs): return reduce( lambda x, y: x + y, zs )
Python's dynamic typing has the most optimal type for this function:
"A function that takes something looking like a sequence of
things that you can call "+" on, and returns something that
you might get back by "+"ing a bunch of such things together."
I just don't ever see Python with a static type system. What's more I
don't think I'd want it. If you want static types then code in something
else. If you find Java/C++ too horrific, then I'd seriously recommend
O'Caml - though this is just from a cursory look, I did most of my FP in
Haskell but I don't think I could recommend it unless you're willing to
become a serious FP-head and want to get to grips with Monads ;-)
Jonathan
More information about the Python-list
mailing list