![Martin Odersky Where Are We With Scala's Capabilities? [Scala Days 2025 Keynote]](https://i.ytimg.com/vi/p-iWql7fVRg/hqdefault.jpg)
"Capabilities are a unifying concept for many aspects of programming, including permissions, effects, and resources. They can be the missing link that can make combinations of functional and imperative programming safe."
"Passing all capabilities along long call chains to code that needs them can quickly get tedious. Access restrictions such as limited lifetimes or sharing are traditionally encoded using runtime mechanisms with the possibility of runtime failures."
"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 state of capability checking today: the usage experience with these concepts, what measures we took to make the notations more ergonomic, and what our plans for the future are."
The object capability model, established since the 1960s, effectively protects trusted from untrusted components in complex systems. Capabilities unify programming aspects like permissions and resources. However, their adoption is limited due to convenience issues in passing capabilities and safety concerns with runtime mechanisms. Efforts at EPFL aim to improve convenience by using implicit parameters and abstracting capability passing. Safety is enhanced by extending the type system to track capabilities. A project is underway to make these concepts usable on a large scale, focusing on usability and future plans.
Read at YouTube
Unable to calculate read time
Collection
[
|
...
]