On May 6, 2006, at 6:37 PM, Greg Ewing wrote: ... > The disadvantages associated with very strong type systems > arise because of their strength, not whether they are > static or dynamic. A language with the same type system > as Java, but enforced at run time instead of compile > time, would be just as annoying to use.
Java's typechecking IS enforced at runtime just about each and every time you cast something (I'm told the need for casting has diminished with Java 1.5's generics, but I have no experience of 1.5; earlier, casts abounded each time you used containers, since they contained Object instances). Personally, I find the typesystems of such FP languages as Haskell to be the second best thing to Python's -- and yet it's extremely strong and totally compile-time. So, I guess what really annoys me in Java is the enforced _redundancy_, the impossibility of applying DRY... I don't really _need_ such conveniences as changing types on the fly, and writing typeclasses to ensure protocol adaptation is as good or better for me than relying on method-homonimy (and I'm sure generic- functions and multimethods would be just as good, too). But I want to say things *once, and only once* -- Haskell's types excel at letting me do that (and the compiler infers things so I don't have to repeat myself), Python's are fine (and the runtime safeguards me against my errors), but Java's mandatory redundance, mixed compiletime/runtime checks, etc, just don't make me happy:-(. Alex _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com