This was a great talk; Clojure/conj was great this year. Schema has the feel of being what 90% of web developers want when they say they want “static typing”.
Compile-time typing definitely has its uses, but most of the time, what people care about is interface integrity– which ought to be a high-ranking consideration no matter how dynamic the language is.
Very recently I found myself lamenting the fact that Python by-and-large completely eschews this, primarily in terms of culture. The argument is always “well it’s duck-typing, so get over it”. But while this may sound fine on the surface, I challenge people who advocate duck-typing to come up with sane ways of managing consistency and understanding in large code bases and teams. I work with a fairly small team and even here we have plenty of issues with team members simply grappling with and understanding the code. This is what was so eye-opening about Schema for me and frankly I think languages like Python could really benefit from something similar.
Although the goals are somewhat different; those interested in this sort of thing would do well to check out Julia’s “type” system, which has the additional benefit of enabling multiple dispatch.