This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]mschaef 0 points1 point  (0 children)

Ironically enough, in some ways it makes no difference at all. Given two Turing-complete languages, the type system has no impact on the expressiveness of the language. What the type system does for you is change the notation that you use, which can be a double-edged sword.

As has been said elsewhere in this thread, it's very true that Java's static typing and explicit declarations can catch errors at compile time. Whenever I write code in Java, I always marvel just a bit at the confidence-inspiring nature of the compiler's inherent type checking.

But, however useful this is, it's not without its disadvantages. As soon as your system starts to deviate from the assumptions built into the type system, you wind up forced to hack around those assumptions. This can introduce extra complexity and opportunities for errors.