An interview with Serokell's Daml Team Lead exploring how Haskell developers can transition to Daml smart contract development. Key topics include how Daml's Update type differs from Haskell's IO (atomicity guarantees), why authorization and visibility are runtime concerns not caught by the type system, and how Daml's archive-and-recreate model contrasts with Solidity's mutable state. The interview covers recommended learning paths (Daml certification courses, early testing), tooling (Daml Studio, daml.nvim, DPM), common mistakes Solidity developers make when adopting Daml, and a preview of an upcoming Daml Smart Contracts Development Guide that walks through writing, testing, and deploying a first Daml contract on Canton.
Table of contents
Daml’s syntax and type system feel familiar to Haskell developers, but its execution model is very different. Which Haskell intuitions remain useful when learning Daml, and which ones can become misleading when working with contracts, parties, and ledger transactions?In Haskell, side effects are made explicit through types such as IO, while in Daml contract creation, exercise, authorization, and visibility are governed by the ledger model. How would you explain this difference to a Haskell developer encountering Daml for the first time?What learning path would you recommend for an experienced Haskell, Scala, or backend developer who wants to become productive with Daml, and which topics, tools, and hands-on exercises should they prioritize first?A Haskell developer may be able to read Daml code almost immediately, but writing secure and privacy-preserving Daml applications requires more than understanding the syntax. What are the most important ledger-specific principles that Haskellers need to learn before working on production systems?Let’s discuss what readers can expect from the Daml Smart Contracts Guide you’re currently working on. What level of knowledge should a developer have to use this guide effectively, who is it primarily intended for, and what topics and practical skills will it cover?You compare Daml with Solidity throughout the upcoming guide, particularly their approaches to state, authorization, and privacy. Which habits from Ethereum or Solidity development are most likely to lead developers toward incorrect or unnecessarily complicated Daml architectures?The upcoming Daml guide highlights that Daml contracts represent rights and obligations rather than mutable objects. How does this perspective change the way developers should think about updates, cancellations, and state transitions in comparison with conventional backend development?257 Impressions