Please log in to watch this conference skillscast.
The topic of static types in the Clojure community is often contentious, but why is that? Is it simply a matter of taste? Poor experience with other statically typed languages? Or is there a deeper, underlying reason? If Clojure is such a powerful functional programming language, can you not have the choice?
And, what is a type system anyway?
During this talk, you will explore the Simply Typed Lambda Calculus, and it's application in a "Hindley-Milner" based type system with "full-program" type inference. How it can be mapped onto Clojure's syntax, and how it can be used to type-check a subset of Clojure code.
You will learn how expressive static type systems compare to clojure.spec, and how they can be used as a tool to complement Clojure's REPL driven workflow, not just to hinder the programmer. Finally, you will discover strategies for mixing typed and untyped code.
A Dynamic, Statically Typed Contradiction
Andrew is a software developer at GoMore, working mostly in Clojure. He's interested in experimenting with, and implementing functional programming languages.