Project Verona is a research programming language to explore the concept of concurrent ownership.
The programming language is being run by Microsoft Research with academic collaborators at Imperial College London. It was inspired by other languages such as Rust, Cyclone, and Pony.
The language also introduces a new model of concurrent programming in the form of concurrent owners, or cowns for short.
A cown, pronounced like “cone”, encapsulates some set of resources (e.g. regions of memory) and ensures they are accessed by a single thread of execution at a time, according to the company.
“There is a tension in programming language design between scalability and safety. To provide temporal memory safety (no use after free bugs), you need to know when an object will never be accessed again. This is, however, typically a global problem as the accesses can be across many threads and determining when an object is no longer accessed requires some form of consensus between the threads,” the Verona team wrote in a post.“There is amazing research in doing this better but in Verona we want to take an alternative approach: ownership.”
The developers behind Project Verona wrote that giving up concurrent mutation is a necessary step for scalable memory management. They explained that there are two alternatives here, exposing “unsafe” to enable unsafe libraries for concurrency such as in Rust, or providing a concurrency model as part of the language such as in Pony.
“The former means the language can rely on fewer invariants as it does not understand how the code inside the unsafe blocks is providing concurrency. The latter means you need an amazing concurrency story as you can only have one,” Project Verona wrote.
More information on the project is available here.