W9w3z5nn7otflivz1tz8
SkillsCast

A Dynamic, Statically Typed Contradiction

4th December 2017 in London at CodeNode

There are 23 other SkillsCasts available from Clojure eXchange 2017

Please log in to watch this conference skillscast.

670475179 640

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.

Thanks to our sponsors

A Dynamic, Statically Typed Contradiction

Andrew McVeigh

Andrew is a software developer at GoMore, working mostly in Clojure. He's interested in experimenting with, and implementing functional programming languages.

SkillsCast

Please log in to watch this conference skillscast.

670475179 640

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.

Thanks to our sponsors

About the Speaker

A Dynamic, Statically Typed Contradiction

Andrew McVeigh

Andrew is a software developer at GoMore, working mostly in Clojure. He's interested in experimenting with, and implementing functional programming languages.

Photos