Hacker News new | past | comments | ask | show | jobs | submit login
Microsoft Project Verona: Research programming language for concurrent ownership (github.com/microsoft)
142 points by manaskarekar on Jan 17, 2020 | hide | past | favorite | 16 comments




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.


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.


(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.


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)) or SPARK (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.


Wow! Thanks for replying. That's a really good point. I'm looking forward to trying it. Cheers.


So it doesn't have any kind of `unsafe` escape hatch like Rust?


The project is being done by MSR in cooperation with Imperial College (where Pony came from), and one of the Pony author’s works at MSR now, so I’m guessing this is by many of the people who worked on Pony.


You would be correct that many people associated with Pony have done work on Verona.


What rust bs is there?


It was internet BS, not rust BS. Sorry if I wasn't clear. Cheers.


I got confused for a second, thinking of https://en.wikipedia.org/wiki/Venona_project


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


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


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.


>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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: