Re:Google introduces Dart, a new programming language for we...
by Peaker on Monday October 10, 2011 @08:20AM
(#3093449)
There's an real conflict between static typing and eval() or reflection.
eval() is shown to be usable in a static typing environment by some of Don Stewart's papers, though it does take more effort on the language implementors' side.
Reflection is achieved in Haskell, for example, using reflective type-classes (such as Typeable and Data).
This enables certain techniques that are very productive, and totally different from what you would do in a language like Haskell, which does have full-type inference.
I also do not think a static language would work as a client-side in-browser language, simply because of the nature of browsers and the web. Such a language needs runtime introspection and even types created at runtime like air. For in-browser stuff I also prefer eval() over static-typing any day of the week.