www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Microsoft Project: Verona

reply RazvanN <razvan.nitu1305 gmail.com> writes:
Hello everyone,

It seems that Microsoft is searching for solutions on migrating 
their code to a more memory safe solution [1]. The good news is 
that it seems that big companies are starting to look more into 
memory safe languages; the bad news is they are looking into Rust.

Cheers,
RazvanN

[1] 
https://www.zdnet.com/article/microsoft-were-creating-a-new-rust-based-programming-language-for-secure-coding/
Dec 04 2019
next sibling parent rikki cattermole <rikki cattermole.co.nz> writes:
On 04/12/2019 10:40 PM, RazvanN wrote:
 Hello everyone,
 
 It seems that Microsoft is searching for solutions on migrating their 
 code to a more memory safe solution [1]. The good news is that it seems 
 that big companies are starting to look more into memory safe languages; 
 the bad news is they are looking into Rust.
 
 Cheers,
 RazvanN
 
 [1] 
 https://www.zdnet.com/article/microsoft-were-creating-a-new-rust-based-programming-languag
-for-secure-coding/ 
The work they are doing is not for a burrow checker. They are doing something quite different (and no Rust has nothing to do with this toy). https://forum.dlang.org/post/gxxktppyqdrocqdbsnzb forum.dlang.org
Dec 04 2019
prev sibling parent reply Kagamin <spam here.lot> writes:
On Wednesday, 4 December 2019 at 09:40:01 UTC, RazvanN wrote:
 Hello everyone,

 It seems that Microsoft is searching for solutions on migrating 
 their code to a more memory safe solution [1]. The good news is 
 that it seems that big companies are starting to look more into 
 memory safe languages; the bad news is they are looking into 
 Rust.
They already tried rust in july for the same purpose https://msrc-blog.microsoft.com/2019/07/16/a-proactive-approach-to-more-secure-code/ But this is a new language.
Dec 06 2019
parent reply Paulo Pinto <pjmlp progtools.org> writes:
On Friday, 6 December 2019 at 19:16:12 UTC, Kagamin wrote:
 On Wednesday, 4 December 2019 at 09:40:01 UTC, RazvanN wrote:
 Hello everyone,

 It seems that Microsoft is searching for solutions on 
 migrating their code to a more memory safe solution [1]. The 
 good news is that it seems that big companies are starting to 
 look more into memory safe languages; the bad news is they are 
 looking into Rust.
They already tried rust in july for the same purpose https://msrc-blog.microsoft.com/2019/07/16/a-proactive-approach-to-more-secure-code/ But this is a new language.
They have done more than just trying, Rust now ships in Microsoft products (Azure IoT and VScode) and they are part of the companies meeting the Rust core team regarding how to foster adoption among enterprises. https://gist.github.com/rylev/0e3c3895dcb40b6a1c1cf8c427c01b5e
Dec 07 2019
next sibling parent reply Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Saturday, 7 December 2019 at 14:53:41 UTC, Paulo Pinto wrote:
 They have done more than just trying, Rust now ships in 
 Microsoft products (Azure IoT and VScode) and they are part of 
 the companies meeting the Rust core team regarding how to 
 foster adoption among enterprises.

 https://gist.github.com/rylev/0e3c3895dcb40b6a1c1cf8c427c01b5e
That is interesting. It is also a bit telling that MS repr. raised two concerns: - do we know what's going into the compiler? - do we know what changes are going in? If MS actually picks it up more than catering to customers... will pick it up, as I think they like to be in control. I also found this discussion on the Rust forum about what holds Rust back interesting: https://users.rust-lang.org/t/rust-2020-growth/34956
Dec 07 2019
parent reply Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Saturday, 7 December 2019 at 18:11:15 UTC, Ola Fosheim Grøstad 
wrote:
 If MS actually picks it up more than catering to customers... 

 will pick it up, as I think they like to be in control.
They are experimenting with it when rewriting one component in the windows code base: https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-windows/ So, that is a beginning of something, if it works out for them. I guess?
Dec 07 2019
parent Paulo Pinto <pjmlp progtools.org> writes:
On Saturday, 7 December 2019 at 18:23:09 UTC, Ola Fosheim Grøstad 
wrote:
 On Saturday, 7 December 2019 at 18:11:15 UTC, Ola Fosheim 
 Grøstad wrote:
 If MS actually picks it up more than catering to customers... 

 MS will pick it up, as I think they like to be in control.
They are experimenting with it when rewriting one component in the windows code base: https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-windows/ So, that is a beginning of something, if it works out for them. I guess?
As mentioned, Azure IoT and VSCode are already shipping with Rust code. If you do any kind of regular expression search on VSCode, that is powered by ripgrep. Likewise if you deploy any Azure IoT device into the wild, the layer that talks between the hardware and .NET layer is powered by Rust, and the cloud part is powered by Actix. More significantly, Kenny Kerr, which started the project to create a UWP projection in standard C++ instead of C++/CX, then joined Microsoft and ended up leading the effort to C++/WinRT, now the oficial replacement for C++/CX, has started a similar project for Rust. https://kennykerr.ca/2019/11/05/rust/ So yes, this looks like the beginning of something.
Dec 08 2019
prev sibling parent reply IGotD- <nise nise.com> writes:
On Saturday, 7 December 2019 at 14:53:41 UTC, Paulo Pinto wrote:
 They have done more than just trying, Rust now ships in 
 Microsoft products (Azure IoT and VScode) and they are part of 
 the companies meeting the Rust core team regarding how to 
 foster adoption among enterprises.

 https://gist.github.com/rylev/0e3c3895dcb40b6a1c1cf8c427c01b5e
I wonder why Microsoft never tinkered with D for this purpose. Was it the garbage collector that made them avoid D after all these years? However Rust comes along and Microsoft is suddenly interested. I'm interested what Microsoft does with Verona. In general Microsoft are good at creating more ergonomic languages. Rust is sometimes a bit clunky to use at some points and the question if Microsoft can make a more user friendly language than Rust.
Dec 08 2019
next sibling parent reply Paulo Pinto <pjmlp progtools.org> writes:
On Sunday, 8 December 2019 at 10:36:50 UTC, IGotD- wrote:
 On Saturday, 7 December 2019 at 14:53:41 UTC, Paulo Pinto wrote:
 They have done more than just trying, Rust now ships in 
 Microsoft products (Azure IoT and VScode) and they are part of 
 the companies meeting the Rust core team regarding how to 
 foster adoption among enterprises.

 https://gist.github.com/rylev/0e3c3895dcb40b6a1c1cf8c427c01b5e
I wonder why Microsoft never tinkered with D for this purpose. Was it the garbage collector that made them avoid D after all these years? However Rust comes along and Microsoft is suddenly interested. I'm interested what Microsoft does with Verona. In general Microsoft are good at creating more ergonomic languages. Rust is sometimes a bit clunky to use at some points and the question if Microsoft can make a more user friendly language than Rust.
I imagine that was indeed the case, if you look between the lines from Joe Duffy's presentations on Midori. https://www.infoq.com/presentations/csharp-systems-programming/ https://www.youtube.com/watch?v=EVm938gMWl0 At the end of his Rust keynote, he mentions that even after being showed how well it worked, Windows Dev team was quite sceptical of it. However as per https://www.microsoft.com/en-us/research/project/singularity/ , Midori used to power the natural language search service for the West Coast and Asia. Which I imagine was a way to stress test it. Additionally, now with WinUI ongoing efforts they decided to convert several of the .NET Native components into C++. Although this doesn't matter that much, because at the end of the day they are all based on COM, it appears (from some BUILD talks) that it is the way to convince shops still using MFC/ATL to eventually move into WinUI. So in spite of all the security issues regarding C and C++, they keep on using them, although more constrained (Azure Sphere, C++ Core Guidelines, lifetime static analysis), because there is a large set of their customers that won't do .NET no matter what. lessons, and now many additional scenarios for low level coding are covered, almost at the same level as D. Still for some, GC has the same effect as garlic for vampires, and hence Rust and now Verona.
Dec 08 2019
next sibling parent Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Sunday, 8 December 2019 at 12:57:27 UTC, Paulo Pinto wrote:
 Still for some, GC has the same effect as garlic for vampires, 
 and hence Rust and now Verona.
But I think GC is possible in what they outlined for Verona. If the basic idea is to only allow one thread to access a group of objects then GC would be possible. Scanning would not interfere with other code at all if they use entity-ids between object-groups. (Component based model). We'll see.
Dec 08 2019
prev sibling parent reply IGotD- <nise nise.com> writes:
On Sunday, 8 December 2019 at 12:57:27 UTC, Paulo Pinto wrote:
 I imagine that was indeed the case, if you look between the 
 lines from Joe Duffy's presentations on Midori.

 https://www.infoq.com/presentations/csharp-systems-programming/

 https://www.youtube.com/watch?v=EVm938gMWl0

 At the end of his Rust keynote, he mentions that even after 
 being showed how well it worked, Windows Dev team was quite 
 sceptical of it.
You don't need to read between the lines for that, as he explained it explicitly. Their attempt with Rust was a long term success but the developers weren't particularly keen on Rust. The developers felt that they were battling the compiler and simple stuff fast was difficult. Actually, programming C++ is really dirt simple if you stick normal object oriented class like programming. It's when you start to dig into templates and ugly libraries C++ starts to become difficult. For simple programming Rust is more difficult than C++ as there is a bigger design burden on the programmer. The programming constantly have to think about various corner cases that occur often. Just thinking about there are three types of closures for example (D has one). Rust is full of these special cases which is starting to become hard to remember and are experienced as annoying. It just deteriorates the programmer experience. What Verona can do better is to clean up all these families of different special types and corner cases to relieve the pressure from the programmer.
Dec 08 2019
parent Paulo Pinto <pjmlp progtools.org> writes:
On Sunday, 8 December 2019 at 22:50:39 UTC, IGotD- wrote:
 On Sunday, 8 December 2019 at 12:57:27 UTC, Paulo Pinto wrote:
 I imagine that was indeed the case, if you look between the 
 lines from Joe Duffy's presentations on Midori.

 https://www.infoq.com/presentations/csharp-systems-programming/

 https://www.youtube.com/watch?v=EVm938gMWl0

 At the end of his Rust keynote, he mentions that even after 
 being showed how well it worked, Windows Dev team was quite 
 sceptical of it.
You don't need to read between the lines for that, as he explained it explicitly. Their attempt with Rust was a long term success but the developers weren't particularly keen on Rust. The developers felt that they were battling the compiler and simple stuff fast was difficult. Actually, programming C++ is really dirt simple if you stick normal object oriented class like programming. It's when you start to dig into templates and ugly libraries C++ starts to become difficult. For simple programming Rust is more difficult than C++ as there is a bigger design burden on the programmer. The programming constantly have to think about various corner cases that occur often. Just thinking about there are three types of closures for example (D has one). Rust is full of these special cases which is starting to become hard to remember and are experienced as annoying. It just deteriorates the programmer experience. What Verona can do better is to clean up all these families of different special types and corner cases to relieve the pressure from the programmer.
Rust? with support for value types, low level allocation, basically similar to D capabilities. Even though it failed to impress Windows team, at least we got on 9. Oh and the .NET Native native experiment (to be merged into main .NET as per .NET 5 roadmap). However, most of this stuff is far from what Midori was trying to achieve. I already mentioned in multiple replies that MS is already using Rust in production.
Dec 08 2019
prev sibling parent Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Sunday, 8 December 2019 at 10:36:50 UTC, IGotD- wrote:
 I wonder why Microsoft never tinkered with D for this purpose. 
 Was it the garbage collector that made them avoid D after all 
 these years?
Probably, if D was on the radar, but you only need to go a few system programming language, and cut back on development of their own C++ compiler (and had ditched newer versions of C). So being open to outside tech is a new thing for MS... The MS leadership is probably coming to an understanding that business applications will move to the cloud/web and that the Windows hegemony is over. So, they try to gain back developer trust that was lost in the 90s by demonstrating a friendly relationship to open source? I think the attitude at the top has changed and therefore people further down the hierarchy feel more encouraged to think outside the MS box? Since Microsoft internally has had issues with memory safety then Rust's main selling point probably made it easier to catch the ears of those who make decisions at MS? But you could also think about it in terms of recruiting. If the kind of developers they want are drawn to Rust, then why not follow the crowd?
Dec 08 2019