19 ms·
Microsoft is creating a new Rust-based programming language for secure coding
- kv85s 7y agoEmbrace, Extend, Extinguish.
- ScottFree 7y agoFour legs good. Two legs bad.
- alimbada 7y agoStill living in the 2000s, I see.
- ahartmetz 7y agoThe penalty for trusting a stranger who shouldn't be trusted is much higher than the other way around.
- pjmlp 7y agoIn the world of for profit corporations I rather trust MS than any of the FAANG.
- pnw_hazor 7y agoMe too. Mighty strange times indeed.
- deleted 7y ago[deleted]
- rumanator 7y ago> than any of the FAANG. That bar is set very low, to be honest. On the bright side, Rust is a Mozilla project thus thankfully the problem doesn't really apply.
- bragh 7y agoI think the amount of trust depends on the team and what they are supposed to deliver. For example, I think that VS Code and Power BI teams can be trusted to have monthly updates that improve the product. But on the other hand, I am never able to trust MS on shipping any language features, as I got burnt so hard by .NET Core 1.0 and F# tooling in VS2017.
- pjmlp 7y agoI have always seemed them as political wars between WinDev and DevTools. Google is much worse regarding Android development. They reboot frameworks faster than MS, each IO the set of best practices is completely new, when something is finally working alright they come with the new one around the corner, I guess it was required the pressure of game developers to finally start having a more polished NDK. Three teams competing for the mobile OS (ChromeOS, Android, Flutter), with a fourth one not clear what is coming out of it. A Java subset nowadays cherry picked from OpenJDK, still most likely never to go beyond Java 8 and whatever they are able to desugar into what ART is capable of. And I bet that if it wasn't for Flutter's uptake, JetPack Composer would never had happened.
- carty76ers 7y agoWhy? I don’t trust F and G but the others are better than M to me.. Netflix has produced tons of widely used open source products for example...
- hordeallergy 7y agoHave you used windows recently? It sounds like you have. I installed it last week for the first time in ten-ish years - afraid I have to describe it as disgusting and completely undoing all the supposedly open work pr they've been getting. I'm on the phone so can't rant, but the install was endless info requests, some sneaky eg can we have your location, no, would you like us to find your device if stolen, erm. Open the browser, news thumbnails riddled with adverts. The timeline, extend beyond 30 days by giving us info. On and on. Sorry, they looked as though they had changed direction, but that surface laptop now runs Linux.
- AnimalMuppet 7y agoWell, you know, we still are in the 2000s. Maybe when we hit the 3000s, we'll all trust MS.
- dang 7y agoPlease don't post unsubstantive comments here.
- deleted 7y ago[deleted]
- sansnomme 7y agoOh no, I bet it's gonna be a C# flavored Rust. None of Rust's terse syntax and functional influence. It's going to be full-blown Java-style OOP with plenty of Wnd handles to be thrown around. Yikes, I certainly hope I am not right.
- 52-6F-62 7y agoRust#
- mcraiha 7y agoI would gladly accept C# styled system language which has same safety and borrowing features as Rust.
- deleted 7y ago[deleted]
- goto11 7y agoWhy not a F# flavored Rust? > plenty of Wnd handles to be thrown around That is not really a language issue, is it?
- ryuukk_ 7y agoF# is as ugly as Rust i hope they go for something more like Swift/Kotlin, much more modern and readable
- edgyquant 7y agothis is what I'm hoping for. Introducing memory safety is enough I dislike Rust because of how different it decided it needed to be compared to most other systems languages.
- dlbucci 7y agoWhat does "Rust-based" even mean? Inspired by Rust? Does it transpile to Rust or something? Very confusing phrasing to me...
- jandrese 7y agoHistorically it means they would start with Rust and then add in just enough Windows proprietary stuff to make it not run on any other platform.
- cududa 7y agoGiven their past years of behavior and focus on dev tools, what in the world makes you think that would be the case? They ported their chromium browser to every platform from day 1.
- astrodust 7y agoTwo words: Steve Ballmer.
- danso 7y agoThe former CEO who retired five years ago?
- astrodust 7y agoYes. That's why people are still super nervous whenever Microsoft dares to embrace something new. Past experience. I'm not saying they're like that today, but that's why some people get all on-edge when Microsoft does things like this.
- danso 7y agoBut he’s not the CEO any longer and he hasn’t been for years. So why is what he did more than a decade ago relevant absent of evidence that he has any direct control of the company today?
- yarrel 7y agoRScript.
- Someone1234 7y agoThis slideshow is pretty interesting (in particular slide 14): https://www.slideshare.net/KTNUK/digital-security-by-design-security-and-legacy-at-microsoft-matthew-parkinson-microsoft https://www.slideshare.net/KTNUK/digital-security-by-design-... Talks about sandboxing C/C++ libraries that interact with Rust. Kinda make a safe unsafe sandbox Rust interface ("less unsafe?") if I understand it correctly (I likely don't). The actual linked article is all over the place, I cannot make heads or tails of it and seems to be conflating multiple security issues/mitigations together into a mish mash.
- alimbada 7y ago> The actual linked article is all over the place, I cannot make heads or tails of it and seems to be conflating multiple security issues/mitigations together into a mish mash. Typical ZDNet.
- pjmlp 7y agoYou really need to watch the video. Basically a new language for system software and containers that allow to tame existing software, due to the expenses of rewriting everything into safe languages. It is based on the CHERI tagged architecture. https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/ https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/ Just starting now, they have done the ground work, will open source it and are looking for collaborators.
- saagarjha 7y agoVideo where this was introduced, which has more details: https://vimeo.com/376180843 https://vimeo.com/376180843 Slides: https://www.slideshare.net/KTNUK/digital-security-by-design-security-and-legacy-at-microsoft-matthew-parkinson-microsoft https://www.slideshare.net/KTNUK/digital-security-by-design-...
- zozbot234 7y agoThe slides don't really add much detail. They're just a light introduction to the sort of region-based memory management that was already being used by Cyclone, well before the Rust project was even a thing.
- pjmlp 7y agoThe video explains more: - Need to keep old insecure code around, too much money to rewrite the world from scratch in Rust, C#, or whatever safe language makes your day - They are just starting the project, so far only interpreter and runtime model - It is based on CHERI CPU research (https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/ https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/), which has memory tagging - They are planning to open source the existing work in a couple of months - Looking for collaboration
- zozbot234 7y ago> Need to keep old insecure code around That's what process boundaries are for. (As a bonus, you get protection from any Spectre-like issues arising in the old code.)
- saagarjha 7y agoNot everything can be neatly refactored out of a process.
- pjmlp 7y agoProcess boundaries don't protect against internal exploits, which is what most of the C and C++ exploits are all about. If you are able to force a process to change its behaviour, the process boundaries become useless.
- pjmlp 7y agoFor the hating Microsoft crowd, here are the projects where they are also using Rust, https://msrc-blog.microsoft.com/?s=rust https://msrc-blog.microsoft.com/?s=rust And the talks done about the internal adoption, https://www.youtube.com/watch?v=qCB19DRw_60 https://www.youtube.com/watch?v=qCB19DRw_60 https://www.youtube.com/watch?v=o01QmYVluSw https://www.youtube.com/watch?v=o01QmYVluSw And the author from C++/WinRT is now working on Rust/WinRT. https://kennykerr.ca/2019/11/05/rust/ https://kennykerr.ca/2019/11/05/rust/ So lets wait a bit before going to the castle with the pitchforks and torches.
- JNRowe 7y agoAs a big proponent of F# it annoys me how much one still needs to fight "but M$" arguments if I point out a thing that F# does well. The same thing seems to happen when discussing Haskell with people who know just enough to recognise the influence MSR employees have on it. It almost makes me wonder how they/we can work around that sentiment now. Either hope for generational shift to eventually kill it, or perhaps have them make a point of landing projects outside of MS and hoping nobody notices(GitHub R++ or whatever). Tips on how others approach these discussions with Microsoft haters greatly appreciated!
- orev 7y ago“Fool me once, shame on you. Fool me twice, shame on me” I try to be objective as much as possible, but having witnessed almost all of Microsoft’s behavior through history, we have been fooled 100s if not 1000s of times. How many times do you let the fox back into the hen house? The only thing I think when I read recent “Microsoft is so great” comments is that the person is either too young to have any real knowledge, or they have simply not been paying attention for the past few decades. For anyone who has seen what they have done through all of history, it will take decades to believe they have truly changed.
- lawnchair_larry 7y agoBig companies are not autonomous and do not make their own decisions, individual people working at those companies do. I think it’s safe to say that anyone working there today has nothing to do with the time periods you’re referencing, so I don’t know why you would consider decades old issues to be relevant today.
- DrBazza 7y agoMidori v2? http://joeduffyblog.com/2015/11/10/objects-as-secure-capabilities/ http://joeduffyblog.com/2015/11/10/objects-as-secure-capabil...
- _bxg1 7y agoArgh, they couldn't just contribute to the existing project.
- kasperni 7y agoArgh, you couldn't just take the time to read the actual article. "The ownership model in Verona is based on groups of objects, not like in Rust where it's based on a single object.
- _bxg1 7y agoI did read that. So it's not a straight clone, but still, Rust has enough of an uphill battle as it is to reach wide adoption, without having its target market fragmented. So I would've been excited to see Microsoft embracing it instead of building a competitor. Not that I can necessarily judge them for that, but it's still disappointing.
- hybrids 7y agoFound the article to be somewhat vague and found this slideshare presentation which was...a little less vauge. https://www.slideshare.net/KTNUK/digital-security-by-design-security-and-legacy-at-microsoft-matthew-parkinson-microsoft https://www.slideshare.net/KTNUK/digital-security-by-design-... It seems like they want to do something like Rust, but with a new focus on regionalized memory management.
- hordeallergy 7y agoHow long before redox will run on my surface?
- Animats 7y agoI'm curious to see what Microsoft does. The big breakthrough with Rust was ownership, and Microsoft seems to agree on that. Rust has a lot of other baggage that could be dispensed with. Of course, Microsoft has their own baggage.
- unlinked_dll 7y agoI disagree about ownership being the big break through, I’d argue it’s the concept of multiple aliasing and handling that at the syntactic level through the borrow checker that leads to all the safety guarantees of Rust.
- hu3 7y agoMore precisely Cyclone already had borrow checker over a decade ago. Rust derives much of its memory model from that language.
- danielscrubs 7y agoWhich is awesome. Standing on the shoulders of giants and all that.
- classified 7y agoThere should be no doubt about the agenda: Embrace, extend and extinguish.
- ncmncm 7y agoThat doesn't apply here, unlike with WSL. Microsoft has a huge problem: thousands of coders who aren't disciplined enough to write reliable code. They need a language to provide the needed discipline. They tried making their own language, and now understand that they are not good enough at that, either. Rust, or a fork of Rust, might suffice. They are not interested in displacing Rust from wherever it is being used. They just need something for their things, that their customers can also use. Lock-in is exercised farther up the chain.
- gigatexal 7y agoWhat a huge validation of Rust. Here’s to hoping this improves Windows.
- techntoke 7y agoLol, if they wanted to make it better they'd adopt some practices and tools from Linux to get common-sense developers interested instead of looking for MS drones that don't know why they do what they do.
- mkl 7y agoThey did: https://docs.microsoft.com/en-us/windows/wsl/about https://docs.microsoft.com/en-us/windows/wsl/about Linux tools run on Windows 10 just fine. WSL 2 even uses an actual Linux kernel.
- loudmax 7y agoUnfortunately, they didn't make the far more compatible step of getting Windows to run on Linux.
- techntoke 7y agoWSL performance is terrible not to mention WSL 2 is still pre-release with lots of bugs and so is their updated terminal app. I don't even think WSL 2 will support Docker, and it is using a broken VM and Plan 9 to share files so you lose most of the performance benefits of Linux. It appears MS is trying to get people to try Linux on Windows and make it bad so that they get a negative first impression.
- zelly 7y agoThis is great news. Microsoft is adopting/forking Rust. That means Rust will be supported for all eternity.
- klysm 7y agoIt appears to not be an actual fork - the slides say the compiler isn’t implemented
- contextfree 7y agoIt's just a new, separate research system which has somewhat similar goals to Rust. The headline is basically wrong. There are also Microsoft teams starting to use Rust, e.g., https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-windows/ https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-win...
- throwaway2048 7y agoOr at least Microsoft Visual R++
- ta0185762954 7y agoExactly, for anyone that recalls Visual J++, this should send a shiver down the spine. No, they haven't changed much, yes they do better PR now.
- nirui 7y agoThat will be very sad if it's the case. One reason of why I'm using Rust is because it's built by a group of people that I like, and Microsoft is not on that list. However, I always keep a open-mind, I mean, I don't see anybody will be hurt if Microsoft become a direct contributor of Rust language itself. In fact, I could like Microsoft a bit if they did invest in Rust. I hope they do that <delete>instead of trying to fork things/build something alike (if that's the case here)</delete> (I watched their intro, their design is different than Rust and I somehow like what they did there).
- xvilka 7y agoEEE strikes again? Why not just use and contribute into the Rust itself? Why creating one more copy? They could have extended C2Rust[1][2] to support C++[3] and C# to ease their migration instead. [1] https://c2rust.com https://c2rust.com [2] https://github.com/immunant/c2rust https://github.com/immunant/c2rust [3] https://github.com/immunant/c2rust/issues/162 https://github.com/immunant/c2rust/issues/162
- microcolonel 7y agoSeems like Microsoft really needs Rust. They've completely gutted their prized aggressive prerelease testing, and the quality of the software they expose users to has declined dramatically.
- pimeys 7y agoI heard 70% of their bugs are related to memory handling or off-by-one errors. About 7 severe bugs per year. It can cost them from anywhere between 100k to 10M to fix the bugs and problems caused by these bugs.
- shomyo 7y agoNIH?
- quantified 7y agoI really like the idea of implementing mutability control at the level of a collective as opposed to a single object. A great many transactions are multi-object. Love the idea that a Netscape-legacy language has traction there. I hope they don’t return to their pre-Nadella practices.
- est31 7y agoActually in Rust you have a problem where you can't express partial access to a struct at a function level. This means that you can't put some code into a separate function right now, making use of closures/iterators harder. There are attempts to fix this ([1] [2]). If borrow checking is done on collections of objects instead, the problem can be tackled more easily I think. [1]: https://github.com/rust-lang/rust/issues/53488 https://github.com/rust-lang/rust/issues/53488 [2]: http://smallcultfollowing.com/babysteps/blog/2018/04/16/rust-pattern-rooting-an-rc-handle/ http://smallcultfollowing.com/babysteps/blog/2018/04/16/rust...
- roca 7y agoThere's some friction there, but in practice it's easy to work around most of the time. I'm not sure extending the type system there is worth the weight.
- aikah 7y agoI'm surprised Microsoft didn't "invent" their own version of Go yet. Actually I'd use it in a heartbeat over Google's if they add generics to it. Just call it "Micro".
- LessDmesg 7y agoThis so much! Go would be a great language if it had generics and no "interface {}". I'd use that over any flavor of Rust any day.
- kerng 7y agoI'm curious what the next big language iteration will bring. It's been a while that I got excited about a new language, last time was probably C#, but that's 20 years ago... Crazy, that there hasn't been any new language revolution sort of how Java was one. But maybe I should look more into new things like Julia, but they seem a bit niche.
- zaarn 7y agoI believe the next evolution will be to combine Rust and Lisp; a programming language as flexible as LISP without giving up the safety of Rust, including a typesystem that can be entirely coded in the language itself, safely.
- bluejekyll 7y agoRust’s macro system gives you this already. Is there something you see it not providing that the language you’re imagining would?
- zaarn 7y agoRust's current macro's aren't as powerful as I would like them, and procedural macros are far more difficult and extremely hard to properly develop and debug. The substitution macros aren't that much fun either since they lack certain capabilities (like introducing a new variable into the current scope without having to specify the name redundantly). Without a lot of external libraries, procedural macros are almost impossible to write in my experience. Neither of them allows one to properly code onto the type system or replace it and neither is properly supported by the IDEs (or RLS).
- Ziomislaw 7y agoembrace, extend, extinguish once again?
- craftoman 7y agoI think it's gonna be something good from the creators of Typescript, the most flexible and object oriented language. Microsoft created too many languages compared to any other company and they really one step ahead in this field.
- Communitivity 7y agoThis so reminds me of when I hear of J#, and again when I heard of C#. Will it be called R#?
- danielscrubs 7y agoImpossible! Java-heads consider this solved! /s