Dynamism and Database Referential Integrity

Jason Orendorff jason at jorendorff.com
Tue Jan 8 21:15:49 EST 2002

> Well, Java and C++ have no strong type checking, they have type 
> declarations that can easily be subverted.

This is thoroughly overstated.

C++, in particular, lets you "subvert" the type system (by
casting) because low-level developers sometimes need to.
In C++, it is clear when you're subverting the type system:
look for casts.

Java has a very simple type system, with no generics, but 
the system is "strong" in the way I've always seen the term
used, and not (in theory) "subvertible".  Not all the rules
can be enforced at compile time, but enough are that the
compiler catches many common errors.  (And even ML
has situations where runtime type checking is useful.)

> If you want type checking at compile time, you have to look for
> Haskell or ML-style languages.

ML's type system is **sweet**.  My dream language has something
like OCaml's semantics and something like Python's syntax.

## Jason Orendorff    http://www.jorendorff.com/

More information about the Python-list mailing list