Neal D. Becker <[EMAIL PROTECTED]> wrote: > I've just started learning about Haskell. I suggest looking at this for an > example. > > A good intro: http://www.haskell.org/tutorial
Haskell's a great language, but beware: its static typing is NOT optional -- it's rigorous. It can INFER types for you (just like, say, boo), that's a different issue. It also allows bounded genericity at compile time (like, say, C++'s templates without the hassles), and that's yet another (typeclasses are a great mechanism, btw). Languages with really optional static typing can be found; I think the premier example is still Dylan -- a kind of commonlisp without infix notation, unfortunately very out of fashion nowadays but still available (some good books, too). I love the explanations of Van Roy and Haridi, p. 104-106 of their book, though I may or may not agree with their conclusions (which are basically that the intrinsic difference is tiny -- they point to Oz and Alice as interoperable languages without and with static typing, respectively), all the points they make are good. Most importantly, I believe, the way dynamic typing allows real modularity (harder with static typing, since type discipline must be enforced across module boundaries), and "exploratory computing in a computation model that integrates several programming paradigms". "Dynamic typing is recommended", they conclude, "when programs must be as flexible as possible". I recommend reading the Agile Manifesto to understand why maximal flexibility is crucial in most real-world application programming -- and therefore why, in said real world rather than in the more academic circles Dr. Van Roy and Dr. Hadidi move in, dynamic typing is generally preferable, and not such a tiny issue as they make the difference to be. Still, they at least show more awareness of the issues, in devoting 3 excellent pages of discussion about it, pros and cons, than almost any other book I've seen -- most books have clearly delineated and preformed precedence one way or the other, so the discussion is rarely as balanced as that;). Alex -- http://mail.python.org/mailman/listinfo/python-list