u/k1v1uqin r/scala • Recommends
Keynote: Making Capabilities Safe and Convenient - Martin Odersky | Lambda Days 2025
#scala#objectcapabilities#effects
15K subscribers • 68 videos on Hallway
Advanced. Deep dive for people who know the field.
3K views1 year ago1 recommendation
Programming languagesLanguage design and type systemsScala
Martin Odersky explains how Scala is evolving to make object capabilities both convenient to pass and safe to restrict at compile time.
✨ This talk was recorded at Lambda Days in June 2025. If you're curious about our upcoming event, check lambdadays.org ✨ Keynote: Making Capabilities Safe and Convenient The object capability model has been established since the 1960s. It is probably the most obvious and clean way to protect trusted from untrusted components in a complex system. So why are object capabilities not used everywhere? I argue it's because they currently lack in both convenience and safety: Convenience: Passing all capabilities along long call chains to code that needs them can quickly get tedious. Safety: Access restrictions such as limited lifetimes or sharing are traditionally encoded using runtime mechanisms with the possibility of runtime failures. In Scala, we have been working on overcoming these two impediments. Convenience: capabilities can be passed as implicit parameters in using clauses, and capability passing can be completely abstracted over using context functions. Safety: We have extended the type system to track capabilities in types. Specifically, we track which capabilities are closed over in a lambda or object. I will report on the initial usage experience with these concepts and the measures we took to make the notations ergonomic. Let's keep in touch! Follow us on: 💥BlueSky: bsky.app/profile/lambdadays.bsky.social 💥LinkedIn: linkedin.com/company/lambda-days 💥Facebook: facebook.com/lambdadays 💥Mastodon: genserver.social/codesync 💥Twitter: twitter.com/LambdaDaysWhat people say. Recommended as an essential talk on the future of capabilities and effect tracking in Scala.
u/k1v1uqin r/scala • Recommends
u/Migeilin r/scala • Mentions
On “Encoding effects as capabilities”