On Wednesday 11 March 2009 15:05:39 Konrad Hinsen wrote: > On Mar 11, 2009, at 3:31, Jon Harrop wrote: > > Most of the reasons given in this thread were red herrings and many > > of static > > typing's real issues were not even touched upon: > > ... > > I'd add two more: > > - Metaprogramming is a lot more complicated with static typing. Look > at MetaOCaml or TemplateHaskell and compare to any Lisp to appreciate > the difference. Of course, Lisp's syntactic simplicity is also an > important factor, but type-correctness adds another level of > complexity to metaprogramming.
I agree that static type checking metaprograms when the compiler is compiled does not work well (e.g. in MetaOCaml and Template Haskell) but "static" type checking what the run-time compiler generates works very well (e.g. JIT compilation in LLVM). > - Type-related boilerplate code can make a program harder to read in > some situations. For an example, look at Haskell's monad transformer > implementations and compare to Clojure's. In the Haskell code, > wrapping the real data into an algebraic data type that exists only > for type checking, and the associated unwrapping, seriously > obfuscates the rather simple structure of the monad transformers. Yes, that is the best example yet IMHO. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---