Please log in to watch this conference skillscast.
Strict and lazy languages are often pitted against each other but rarely honestly compared. Let's take a step back from the slogans and examine the trade-offs between lazy and strict. Not which is best: how they compare.
Most languages are strict. Haskell is very much the odd one out there. So, it is not surprising that programmers in strict language sneer at Haskell's laziness, nor that Haskell programmers feel compelled to defend this choice. But because of the adversarial nature of this debate, it ends up with cheap slogans such as “strict languages are more efficient” or “lazy languages compose better”.
This doesn't tend to be very enlightening. After all, the most likely answer (if maybe unsatisfactory) is: it depends. The choice between strictness and laziness is, at the end of the day, as most things in engineering, a trade-off. And to make an informed choice between these two technologies, we need to know what the costs and benefits of each are.
My goal is to provide tools to make such an informed decision by sharing, based on my experience as a programmer in both lazy languages and strict languages, the strengths and weaknesses of both paradigms. If you’re looking for me to tell you which is best, you will be disappointed. On the plus side, there will definitely be some production horror stories.
This talk should be of interest to Haskell engineers of all levels, people who are only learning Haskell, and those who would like to improve as a mentor or educator either in your company or generally.
YOU MAY ALSO LIKE:
Comparing Strict and Lazy
Arnaud Spiwack spend the first 10 years of his working life in Academia, between Chalmers university in Gothenburg, Sweden, and Ecole Polytechnique, Inria, and Mines ParisTech, in the Paris area. He spent this time researching dependent types, computer-verified proof, and sequent calculus. During his time in Academia, Arnaud got involved in the development of the Coq Proof Assistant, where he, in particular, re-engineered Coq's tactic engine and gave it an abstract interface. After leaving academia, he remained a member of the core development team of the Coq Proof Assistant. He is now a senior architect at Tweag I/O, and is working at making the world better typed.