Please log in to watch this conference skillscast.
Dependent typing is at the forefront of much programming language research, not least the DOT calculus being planned for the future of Scala. But what is dependent typing exactly? Why is it important, and what can actually be done with it now? Why should the average Scala developer care?
Dependent typing allows you to prove the correctness of our programs in ways that you couldn’t otherwise do. Complex data structures and algorithms are prone to error-ridden implementations - getting them right is hard. With dependent typing, you can encode invariants in a way the compiler can check for you, easing the burden of implementation and preventing bugs.
Scala already has good support for dependent typing, perhaps more than any other mainstream language. Whilst the syntax is not trivial, learning to use dependent typing techniques is easier than you might think, and it is immediately applicable to many areas.
YOU MAY ALSO LIKE:
- Greg Young's CQRS, Domain Events, Event Sourcing and how to apply DDD (in Stockholm on 22nd - 24th May 2017)
- Fast Track to RESTful Microservices (in London on 24th - 26th May 2017)
- µCon 2017: The Microservices Conference (in London on 6th - 7th November 2017)
- Serverless Architecture with Azure Functions with Christos Matskas! (in London on 29th November 2017)
An Introduction to Dependent Typing in Scala - Advanced
I started learning Scala almost 4 years ago, quickly getting to grips with the more functional aspects and developing an appetite for the type-level programming styles it enables. I have been writing Scala in Industry full-time since early 2013, and pushed Scala heavily at my previous organisation (Scotiabank). I am active in the Scala open source community, especially with the Typelevel organization.