Please log in to watch this conference skillscast.
Learn the basic building blocks of shapeless and get a practical introduction to generic programming by writing general functionality for any sealed trait and its case class implementations. This workshop is aimed at you if you are a competent Scala developers with little or no shapeless experience, and may also appeal to intermediate shapeless developers.
The case study is spray-json-shapeless, a library that uses shapeless to derive serialisers for consumption by spray-json. You will learn about concepts such as Hipster.Aux, Generic, HList, Coproduct, Lazy and Strict, as well as some caveats (i.e. bugs in the Scala compiler) that can restrict what is possible. You will be involved in applying what you have learnt to S-Expression serialisation, which is exactly how the ENSIME SWANKY protocol works.
Time permitting, you will also take a tour of lesser-known features of shapeless that are being used by ENSIME to solve problems at compile time (that are often solved with verbose runtime reflection).
Code and setup instructions are available in this Github repo
YOU MAY ALSO LIKE:
- High Performance Linear Algebra in Scala (SkillsCast recorded in December 2014)
- Crafting Code with Sandro Mancuso (Online Course on 13th - 14th May 2021)
- Software Modernisation: A Strategic Approach (SkillsCast recorded in July 2020)
- Espresso Patronum: The Magic Of The Robot Pattern (SkillsCast recorded in October 2019)
Workshop: Shapeless for Mortals
Sam Halliday
Sam Halliday is a chartered mathematician and software engineer with a love for technology innovation and free software (ENSIME, spark/netlib-java, etc).