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
-~----------~----~----~----~------~----~------~--~---

Reply via email to