Elixir is a dynamically typed programming language; a property that has its pros and cons. It is very easy to write smaller programs in a dynamically typed programming language but ones systems grow larger one will benefit from a static type system where the compiler can help us to find bugs in our code. Elixir is a programming language that is targeting large systems and would benefit from a static type system but there are certain aspects when it come to concurrency and change to running systems that makes it very hard to implement a static type system.
We will discuss how a type system would have made things different by implementing a ray tracer. If everything works as expected you should be able to generate images as the one below.
Before the lecture
You should before the lecture have completed a small ray tracer in Elixir following the tutorial below. During the lecture we will discuss different aspects of the program, how we have worked with data types and how things could have been different in another programming language.