

The Unreasonable Effectiveness of Dynamic Typing for Practical Programs - erokar
http://vimeo.com/74354480

======
erokar
JavaZone's summary: "Explore the disconnect between the dire outcomes for
dynamic language programs predicted by advocates of static typing, versus the
near absence of type errors in real world systems built in Python, Ruby and
Clojure and the many successful systems built in dynamic languages.

Some programming language theorists would have us believe that the one true
path to working systems lies in powerful and expressive type systems which
allow us to encode rich constraints into programs at the time they are
created. If these academic computer scientists would get out more, they would
soon discover an increasing incidence of software developed in languages such
a Python, Ruby and Clojure which use dynamic, albeit strong, type systems.
They would probably be surprised to find that much of this software—in spite
of their well-founded type-theoretic hubris—actually works, and is indeed
reliable out of all proportion to their expectations.

This talk—given by an experienced polyglot programmer who once implemented
Hindley Milner static type inference for “fun”, but who now builds large and
successful systems in Python—explores the disconnect between the dire outcomes
predicted by advocates of static typing versus the near absence of type errors
in real world systems built with dynamic languages: Does diligent unit testing
more than make up for the lack of static typing? Does the nature of the type
system have only a low-order effect on reliability compared to the functional
or imperative programming paradigm in use? How often is the dynamism of the
type system used anyway? How much type information can JITs exploit at
runtime? Does the unwarranted success of dynamically typed languages get up
the nose of people who write Haskell?"

