
Microsoft Project Verona: Research programming language for concurrent ownership - manaskarekar
https://github.com/microsoft/verona
======
manaskarekar
Recent discussion:
[https://news.ycombinator.com/item?id=21682867](https://news.ycombinator.com/item?id=21682867)

------
tracker1
Hopefully some of this research bears fruit and potentially makes its' way
into Rust proper. I haven't used it as much as I would like, but find it
conceptually interesting to say the least.

I have spent some time reading a few rust projects, and a lot of that code is
in a way very beautiful to look at. Actually trying to think in those concepts
much more difficult. I've gotten used to life without guard rails in JS, even
though I tend to favor more modular code.

------
youdontknowtho
The read through of docs in their repo is interesting. They mention Pony
several times as an inspiration because of it's type system's concurrency
primitives. Rust and Cyclone are also mentioned. I've recently gotten over my
dislike for Rust evangelism and started learning it. It's just too good of an
idea to let internet BS and my propensity to hold a grudge stop me from
learning.

It's interesting that building a self-hosting environment is a stated non-
goal. Sounds like they are really focused on research and not building a
production toolchain, but who knows?

I'm really interested in seeing where it goes. Not really my area but I'll
probably spend a couple of nights playing around with it.

~~~
plietar
(I work on Verona, originally as an intern at MSR, now as a PhD)

> It's interesting that building a self-hosting environment is a stated non-
> goal. Sounds like they are really focused on research and not building a
> production toolchain, but who knows?

The point isn't that the language will never be "production-ready" enough for
it. It's that the language is intentionally limited in what kind of low-level
hacks and concurrent mutation you can do, in order to remain safe. Writing
this kind of code correctly is hard, and designing a language that exposes the
full expressiveness in a sound and practical way is near impossible (at least
given today's state of the art research).

The Verona runtime is therefore implemented in C++, which does have these
capabilities. In some future it would nicer to formally verify the runtime for
correctness, but that's a lot of work.

~~~
thesuperbigfrog
Reading through the GitHub repo, I see Rust, Cyclone, and Pony as idea
sources, but I was surprised to not see Ada
([https://en.wikipedia.org/wiki/Ada_(programming_language)](https://en.wikipedia.org/wiki/Ada_\(programming_language\)))
or SPARK
([https://en.wikipedia.org/wiki/SPARK_(programming_language)](https://en.wikipedia.org/wiki/SPARK_\(programming_language\))).
Both Ada and SPARK are mature, production-ready languages that have strong
safety guarantees and concurrency built-in.

SPARK in particular might be worth looking at for another idea source
depending on Project Verona's goals and needs.

------
anarazel
I got confused for a second, thinking of
[https://en.wikipedia.org/wiki/Venona_project](https://en.wikipedia.org/wiki/Venona_project)

------
mips_avatar
The lead researcher for microsoft security published their conference
presentation on this project. It's really interesting seeing how they are
locking down memory to avoid memory related security issues (free after free,
buffer overflow, etc.) This is particularly exciting because as they
referenced in the video 70% of security fixes on windows are memory related.
Link to video: [https://vimeo.com/376180843](https://vimeo.com/376180843)

------
blackflame
In C++ I use concurrent ownership all the time. It's fast as hell and 60% of
the time it works every time. /s

------
icandoit
It's nice to see Microsoft embracing Rust.

I'm sure crustaceans would love to see if they can extend it's reach through
their product range.

------
vxNsr
> _Building on Windows

You will need to install_ Visual Studio 2019 _and cmake. To build and run
tests, you will need Python 3._

Open source: Now needs closed source to run at all.

