JuliaCon 2020 (times are in UTC)

Dispatching Design Patterns
07-30, 16:40–17:10 (UTC), Green Track

This talk covers common patterns that have emerged in Julia using multiple dispatch and generic types to create code that is flexible, robust and performs well.


A topic which frequently comes up in discussions of Julia is how to solve complex problems without class-based object orientation. We will look at how objects and interfaces are designed in Julia using modules, structs, multiple dispatch and abstract types. We’ll look at how to use generics for more open-ended polymorphism that doesn’t sacrifice performance and how to use the trait pattern to define extensible, overlapping categories of types. We’ll also mention a few anti-patterns that come up in Julia, such as the infamous “type piracy”.

We’ll also look at how multiple dispatch can be used as a simple form of pattern matching, similar algebraic data types in functional languages, and how this is useful for traversing recursive data structures like the abstract syntax trees one deals with when writing macros.

This talk is for programmers who may be experienced with other languages but are new to Julia and want to see how we design software using Julia’s unique feature set.

Aaron works at the Goethe University Library in Frankfurt on problems related writing systems of natural languages. Most of the work is in Python, but he enjoys sneaking in bits and bobs in Julia and OCaml when no one is looking. Outside of work, he has contributed to a refreshed C-calling interface for Julia 1.5 and answers way, way too many questions about Julia on Quora.

This speaker also appears in: