> You should read Chris Smith's article:
A good article. In fact, because of this very thread, I had just
started to figure out on my own some of the points the article
addresses. For instance, because of being forced to program in C, C+
+, Pascal, etc. in early years, I always had the notion that static
type systems only seem to be good for checking for typos that I will
catch easily enough anyway when I run my code, but at the huge cost of
cluttering up my code, turning what should be several lines into a
page or more, and giving me carpel-tunnel syndrome from all the typing
I am forced to do. The best thing I ever did was get away from those
languages as quickly as humanly possible (which I did a long time
ago). But the point is, until this very thread, I always associated
"static typing" with those languages, particularly utter crap
languages like Java and C++.
I think what I started to learn from this thread (correct me if I am
wrong) is that a type system like Haskell's is just a whole different
kettle of fish, not just because you aren't forced to clutter your
code with huge numbers of type annotations like "public static void
main blah blah..." over and over again, but because the type system is
really something more than just a glorified typo-catcher.
If you static guys happen to run into this topic with dynamic guys
very often, I think the best thing you can do is get them to
understand from the get-go that static typing DOES NOT necessarily
equal programming in a hellhole like C++ or Java or Pascal.
> The Factory might make the wrong type by accident, or there might be
> some buggy plumbing in your program between the factory and where the
> produced widget is actually used.
I don't think the article addressed this, or told me why I should be
concerned about it. Either way, a lot of this stuff might boil down
to a "cultural" or "religious" thing. I've seen what I will call
"defensive coding" written by colleagues that makes my eyes glaze over
(basically reams of code checking for type everywhere you can check
for it). Me? I don't do it, and nothing blows up, but far be it from
me to criticize someone else's "culture" or "religion."
At any rate, a successful thread. What do you know, I actually
learned something.