Rust is Now a 'Tier One' Language at Microsoft (theregister.com) 89
The Register reports:
When Microsoft's developers and engineers sit down to code, they can now choose to work in Rust, which Redmond has added to its list of canonical languages. "Rust now is a Tier One language at Microsoft, and that just means that it sits among C++, C# and TypeScript as the best supported languages for internal development in the company," explained Victor Ciura, Microsoft principal engineer for the Rust tooling team, during a keynote talk today at this year's annual RustConf, being held this week in Montréal. Ciura said Microsoft has "paved a path" of tools and processes that support local Rust development across the entire software development lifecycle.
Rust is no stranger at Microsoft and is already present in over 100 Microsoft project repositories. The company has built Oxidizer, a set of crates to build scalable services in Rust, which have been used to build and refine the Microsoft 365 core services such as Outlook, Word, Excel, OneDrive, and SharePoint. The Copilot tech stack also owes quite a bit to Rust... [C]ompany engineers built rustc_codegen_utc, a custom Rust compiler code-generation backend that wires the rustc compiler directly into the Microsoft Visual C++ internal toolchain for Windows... "The result is a unified code generation platform for Rust and C++ on Windows" [Ciura wrote in a blog post, noting that more than 100 Microsoft project repositories now build with rustc_codegen_utc.]
Still, Redmond running towards Rust is a welcome development. In his 2025 RustConf keynote, Microsoft Azure CTO Mark Russinovich noted that ~70 percent of Windows CVEs are memory issues. "One of the things that I realized a long time ago is that no matter how much we really want to make C and C++ better, we can't make it as good as what Rust starts with," he said.
Rust is no stranger at Microsoft and is already present in over 100 Microsoft project repositories. The company has built Oxidizer, a set of crates to build scalable services in Rust, which have been used to build and refine the Microsoft 365 core services such as Outlook, Word, Excel, OneDrive, and SharePoint. The Copilot tech stack also owes quite a bit to Rust... [C]ompany engineers built rustc_codegen_utc, a custom Rust compiler code-generation backend that wires the rustc compiler directly into the Microsoft Visual C++ internal toolchain for Windows... "The result is a unified code generation platform for Rust and C++ on Windows" [Ciura wrote in a blog post, noting that more than 100 Microsoft project repositories now build with rustc_codegen_utc.]
Still, Redmond running towards Rust is a welcome development. In his 2025 RustConf keynote, Microsoft Azure CTO Mark Russinovich noted that ~70 percent of Windows CVEs are memory issues. "One of the things that I realized a long time ago is that no matter how much we really want to make C and C++ better, we can't make it as good as what Rust starts with," he said.
Embrace and Extend. (Score:5, Insightful)
Good to see. Microsoft has Embraced Rust and Extended it's reach including providing it with access to new places where it can run. I'm sure the future is bright.
Re: (Score:3)
You should clarify what open standards you think are being extended in a proprietary way in this case. Because that's the meaning of "Extend".
Oxidizer is MIT licensed, there isn't any proprietary version of Rust being sold. Just using the language to make their product better and then contributing back changes and tooling to the community.
They deserve all the hate for the late 90's with their extended proprietary JVM [wikipedia.org] or with playing dirty in office file format standards with Open XML [wikipedia.org]. But those are a decade
Re: (Score:2)
You're right they're not at the extend phase... yet.
History tells us we should watch out for that.
They deserve all the hate for the late 90's with their extended proprietary JVM or with playing dirty in office file format standards with Open XML. But those are a decade and a half ago.
Microsoft has become worse in many ways over that time, there's no reason to believe they are better in this way as well.
Using a tool and giving back is the premise of open source and giving grief over changed bad behavior is pretty counter productive to progress.
Microsoft is still engaging in a lot of bad behavior, so there's no reason to believe that anything that is good will continue, or that anything that looks good is good.
Re: Embrace and Extend. (Score:2)
/facepalm
By this reasoning, Microsoft should have taken over C++ a long, long time ago. Hell, C# should be even more proprietary right now, instead it has become open, whereas the language it was built to compete with, namely Java, went from being open to being an excuse for Oracle to sue anybody who uses it. Actually come to think of it, Microsoft is funding eclipse adoptium.
Just because your favorite drink is the same color as rust doesn't mean you understand it, let alone any other programming language.
Re: (Score:2)
By this reasoning, Microsoft should have taken over C++ a long, long time ago.
Their attempt to do that was called C#. It failed. Not everything someone tries succeeds. For example, you tried to be smart there, whoops!
Re: Embrace and Extend. (Score:2)
Re: (Score:2)
Yet the whole unison game engine uses it.
Wow, a whole game engine?
A lot more than that uses C#, but C# didn't take over, which of course is what Microsoft wanted. But it was never going to happen for many many reasons. That's why Microsoft has to use the EEE strategy, which at least is somewhat successful for them. Their ability to use it is waning as they become less relevant, but they remain hugely influential due to their massive installed base so they can still fuck things up pretty good and will likely be able to for decades yet.
Re: Embrace and Extend. (Score:2)
Re: (Score:2)
Microsoft was always trying to take over. At that point they were pushing .NET as the official way to make new applications. Unlike Windows Mobile they weren't stupid enough to deprecate all other methods, so they didn't destroy themselves completely... alas.
Re: Embrace and Extend. (Score:1)
It isn't supposed to take it over, you think it is because your brain is entirely made of brown matter. These languages are not even trying to do the same thing. C# is not a systems language, by design. C++ is, by design. C# is garbage collected, C++ is not. C# needs a very large runtime just to do anything at all, C++ does not. Games written in C# will inevitably require more RAM and will be subject to GC pausing. Lower performance games can tolerate that, but games that push the hardware to its limit will
C# has way more programmer than rust (Score:2)
Re: Embrace and Extend. (Score:2)
Their attempt to do that was called C#. It failed. Not everything someone tries succeeds. For example, you tried to be smart there, whoops!
Talk about a "whoops", your brain is 100% brown matter if you think C# was ever intended to replace C++. Those two serve a very different purpose. C# is much more closely related to java and tries to serve the same niche. You're obviously not even aware of what the CLR is for.
I didn't start using C# until dotnet core, and I started using java soon after. C# feels like somebody put some actual thought into it. Java feels like an early alpha release of C#. Neither language is my daily driver -- that would be
Re: (Score:2)
You are right that C# is a good example of Microsoft behavior. Tying right into their nervousness on Java, it was proprietarily extending beyond the ECMA standards by layering on .NET. Around 2004 the Mono project pops up to try to cross-platform it, works but poorly, and a in a pretty sketchy patent situation. By 2009 the FSF warning everyone off of it, fearing that extinguishing play.
But by, 2014 Microsoft gives out full patent grants, open sources most everything, cross-platforms and makes Linux a first
Re: (Score:2)
Re: Embrace and Extend. (Score:2)
Re: (Score:2)
Hey, wait a minute. I'm a Rust user for six years now and a proponent. What do you find so insufferable about me? What did I ever do to annoy you?
Re: Embrace and Extend. (Score:2)
Re: Embrace and Extend. (Score:4, Insightful)
This gives open source and other competitors' alternatives to Microsoft products the appearance of being shitty because they can't deal with Microsoft's non-standard bullshit, which is where the "Extinguish" part is achieved.
Re: (Score:2)
You mean "bright" as in "non rusty"?
Re:Embrace and Extend. (Score:4, Insightful)
Just waiting for Rust#
Re: (Score:2)
Good point.
I guess it is coming sooner or later.
Embrace and extend would need Visual Studio (Score:1)
Good to see. Microsoft has Embraced Rust and Extended it's reach including providing it with access to new places where it can run. I'm sure the future is bright.
There is no embrace and extend here. If they were doing that they would be adding rust support to Visual Studio and be providing their own compiler.
They don't even provide an extension for Visual Studio Code, rather thdy recommend the community extension.
All they are doing is letting internal projects use rust. Allow rust experience to fully count for job interviews.
So what? (Score:3, Insightful)
Coming from a company that has enshitified its UX version after version over the years, why would them greenlighting the use of Rust mean anything? So that fanboys can tell their superiors "See look Microsoft uses Rust therefore we should too!" and get to play with their toys?
Re: (Score:2)
Imagine that you are a Rust developer by trade, and this news results in the creation of more job opportunities for you in a Windows-dominated industry.
Re: (Score:2)
I am a Rust developer by trade. Previously a C and C++ developer. And a bunch of other things beside. This news is nothing to me, I have never wanted anything to do with Windows world.
Re: So what? (Score:1)
Hmm...Have you looked at the ohno crate? That, and a bunch of other crates in oxidizer look really useful, and none of them are specific to windows. There are a few obviously designed for MS products like azure, but most that I've looked at aren't.
They mostly seem geared at making rust even more ergonomic.
Re:So what? (Score:4, Insightful)
Coming from a company that has enshitified its UX version after version over the years, why would them greenlighting the use of Rust mean anything?
What does UX design have to do with a decade of insanely high number of security vulnerabilities generated by poor coding practices at Microsoft? There's a subject here you can criticise, no need to rant about something else.
Re: (Score:2)
And what does the language matter anyway when you can now type in pseudocode into Copilot and ask it to form perfect equivalent code in any language?
Re: (Score:3)
I asked Claude, and it said yes (with code examples) to all of those except Malbolge.
It took Sonnet 5 almost a minute to generate an explanation of a Malbolge "Hello World". I can see why it doesn't want to do that.
Re: (Score:2)
I've been using Claude to both understand and assist in writing new code in DB/C, an obscure dialect of another pretty obscure language called PL/B or DATABUS -- all of which are descendants of (or highly influenced by) COBOL. It's pretty fantastic. It's a codebase that is ~50 years old, hundreds of thousands of lines, with code spread throughout modules, with jump tables and gotos everywhere. The code itself is easy to read and understand, but the flow is not!
"Sit down to code" (Score:5, Insightful)
FTFY
Re: (Score:3)
"review the recent changes, looking for: gaps, flaws, inconsistency, or overtuning."
"oh shit! update the tests and docs too."
Re: (Score:2)
Rust designed to mitigate limitations found in C a (Score:3)
Dr. Dobb's Journal March 1991: Array bounds checking with Turbo C [acm.org]
Re:Rust designed to mitigate limitations found in (Score:4, Informative)
Not quite. The safe c library is primarily about runtime memory safety checks which are a good thing. But rust is also about compile time enforcement of memory safety. This is not something you can get from a library for an existing language like C. That's not to say you couldn't make a C dialect that had rust-like guarantees.
Re:Rust designed to mitigate limitations found in (Score:4, Interesting)
You can use non-standard extensions with C++ today to cover some of what Rust does, like -Wlifetime in C++ for something roughly equivalent to Rust's compile-time borrow checker. UBSan/ASan lets you enforce address and undefined behavior with runtime checks, it's useful and easy to use, but it has a big performance impact so you normally turn it off in production code.
Google Carbon seems promising, but it deviates enough from C++ that it feels like yet another language. But theoretically you will be able to have a project that has a mix of C++ and Carbon and it should Just Work(tm).
Ada / SPARK is an alternative to must of what Rust offers, it's a wildly different approach and not a 1:1 equivalent. But you can make reliable software and even do some formal verification and static analysis on it. It's easier to deal with violation messages from the Ada compiler than with Rust. But it's also a lot more work to put all the contracts and declarations in place (you need multiple files just to make a module, so it's a very different workflow compared to C/C++/Rust).
Re: (Score:2)
An interesting alternative to C++ is: https://www.circle-lang.org/ [circle-lang.org]
https://github.com/seanbaxter/... [github.com] - read the readme.
Re: (Score:2)
Circle has stalled/died. It was originally a proof of concept of "Safe C++" which was proposed to the C++ standards committee. However they decided to go for "Profiles" instead. So Circle hasn't seen any development since then. Hopefully someone will pick it up. It's a good concept, and in my mind where C++ should have gone.
Re: (Score:2)
Dr. Dobb's Digest March 2009: The Safe C Library [jacobfilipp.com]
Dr. Dobb's Journal March 1991: Array bounds checking with Turbo C [acm.org]
The ideal for memory safety is to have an air-tight pressure vessel.
With C, you're starting that task with a colander. You've managed to fill two of the colander's holes with silicone caulk. Congratulations.
Re: Rust designed to mitigate limitations found in (Score:2)
That's why most C devs migrated to C++. Remind us about Rusts object model... oh that's right , it doesnt have one. Like VB it has kinda sorta OO type stuff but theres actual OO there. And yes, it does matter. Procedural programming large code based becomes a chore real fast.
Re: (Score:2)
C++ is just as much of a sieve as C, only more obtuse.
"Object models" are an anti-feature.
Re: (Score:2)
Says someone who's never worked on a big system with complex data.
Re: (Score:2)
Wrong again.
Moreover, many of the big complex systems I've worked on were big and complex mainly because OOP nitwits had designed them. They often didn't understand how computers actually work, lost sight of the fact that they were writing a computer program, and spewed out frameworks that filled countless gigabytes of resident memory with endlessly deep layers of nothingburger abstractions. Maybe that didn't matter so much when memory was cheap, but that's no longer the case.
If you think that there's only
Re: (Score:2)
Frameworks have nothing to do with OO. Ask any javascript kiddie. And if you want to babble about "how computers really work" I presume you're programming them using front console toggle switches and an enter button? No? Didn't think so.
"I've worked on were big and complex mainly"
yeah, sure you have.
"you're a just noob that needs more experience before spouting your theories."
Son, I started out with punched cards. I was probably programming before your parents had even met so spare me your faux guru BS. You
Re: (Score:1)
It has trait's which is another name for interfaces. But lacks inheritance.
Traits can also define default functions.
The general idea being that you piece together an object from a single struct and multiple traits as in composability, but don't do inheritance.
For structs those are strongly typed so when you have a pointer to one the type has to match.
Good (Score:2)
Butterflies. (Score:5, Funny)
I'll just jump straight to it. [xkcd.com]
So What (Score:5, Funny)
Re: (Score:2)
import ecclecticfurniture
import breakablekitchenware
import dubaichocolate
# Hey, you're right!
Re: (Score:2)
1 very long groan, 1 standard length groan, 2 short groans. Final pun score of 200.
We have a winner!
Your prize... a shot glass hurled at your face. Please reply with your address for delivery.
Bastard.
Re: (Score:2)
Re: (Score:2)
But if the pier gets old does it turn into rust?
Re: (Score:3)
Well, they've already got Teredo worms trying to squeeze their way through my firewall...
Problem with providing OS software for profit: (Score:3)
Deliberately giving limits to a present version allows the company to charge a lot for a new version, even if the new version provides few important benefits.
Re: (Score:2)
So which feature do you think Microsoft is secretly withholding from Windows 12, and OS which based on their past performance they will provide as a free upgrade? Did they not incorporate enough emoticons for you?
Re: (Score:2)
The last unequivocal Windows upgrade was Windows Vista to Windows 7.
Come to think of it, it was also the only unequivocal upgrade to NT since Windows 2000, and before that, it was 3.51.
Re:Problem with providing OS software for profit: (Score:4)
So which feature do you think Microsoft is secretly withholding from Windows 12,
Windows 12 will run on a neural implant. It will have DMA use of your brain, as you will no longer need to use as much of it. Your thinking will be done by Coprolite.
Re: (Score:2)
This also implies that the money is being made on the OS. And everyone knows that the money is really in the App Store and Services.
This isn't even a recent development, PowerShell migrated from being under the OS section to the Azure section a decade ago because that's what was really making money.
Re: (Score:2)
Huh? (Score:4, Funny)
sits alongside .. Typescript? That's like saying I live on planet Earth, the same planet home to Einstein, Isaac Newton, and Kim Kardashian -- therefore I must be on par with Einstein.
Re: (Score:3)
Many of their tools like Office 365 or the Azure console are run in the browser. Are you advocating for traditional JavaScript without typing or pure WASM for those cases?
I understand the hate on JS/TS in the backend (and even in this article they are stating that Rust and the C's are the choice for backends), but pretending that TS isn't the only good choice for browser frontend apps seems silly.
Re: (Score:2)
Backends running JS/TS are usually running on super fast JS VMs.
From point of view of developer teams, it makes perfectly sense to have on both sides the same languages.
The people "hating" it and badmouthing it, are usually 30 years out of the loop how much ECMA Script has evolved - and are not working with any of the languages involved anyway.
What I love about Rust. (Score:3)
What I love about Rust is that they figured out yet another way to make the print command and syntax completely unique to the language as well as a confusing mess. And a chef's kiss fro having both print! and println!
fn main() {
println!("Hello World!");
}
No matter how many times I tell it to print NOT "Hello World!" it still prints it. So cool!
Re: (Score:2)
Coming from Pascal where write/writeln is a special language construct that doesn't work like any other function/procedure, it's refreshing to see that Rust made printing a macro, and that you can roll your own easily. That every macro ends in ! makes a lot of sense in terms of transparency, but it was a confusing little doodad in the syntax to see on my first day.
The grim reaper (Score:4, Insightful)
We should celebrate that the 90s FUD-machine and the grimreaper of countless F/OSS is embracing the new F/OSS darling? They already took Minecraft and GitHub from you and left you with win11, dont be so eager to clap now..
Wait, O365 has been enhanced? (Score:4, Insightful)
refine the Microsoft 365 core services such as Outlook, Word, Excel, OneDrive, and SharePoint.
Outlook isn't just slightly broken, it's a massive pile of broken garbage. It doesn't even support S/MIME extensions by default. Outlook is such a poor showing of a product, that if any company released it on its own, they'd be bankrupt quickly. Word, and Excel, both examples of terrible showings in their categories, and I don't think it's out of line to say the worst showing in their categories. Case in point, you can't install O365 on the vast majority of Unix or Linux-based systems, which means, Microsoft knows they are not suitable for any professional.
O365 online, is slow, buggy, glitchy, and crashes so often it's like you're back on early versions of Windows. Do they really want to use O365 as their defence for using Rust? Regardless about Rust, since it doesn't matter, why use some of the worst products the company has designed to make the point?
Re: (Score:1)
Agreed. Office XP / Office 2003 were and still are Peak Office when it comes to stability and consistency.
GAPPS for everything else, lol
Re: (Score:2)
It doesn't even support S/MIME extensions by default.
You're ranting a lot about a "failure" and "broken" product that none the less makes the entire world go round. You know what doesn't make the world go round? S/MIME. No one cares. The concept of secure email died in the early 2000s. No need to try to shoehorn security into something that has been universally agreed we'll accept as an insecure medium. Why would anyone support it other than to appeal to a handful of Slashdotters with no business acumen and no idea how the wider world works?
Word, and Excel, both examples of terrible showings in their categories, and I don't think it's out of line to say the worst showing in their categories.
And yet they have
Re: (Score:2)
Professionals don't use Windows, frauds use Windows. People with special needs to use Windows. The computer user who thinks an “any key” exists, use Windows. Professionals don't, and would never use Windows, it's a train wreck. It's completely unstable, broken, glitched, bugged, and crashes
I prefer Rust to C++ (Score:4, Insightful)
And I prefer C to C++ or Rust. And I prefer shell script, awk, or Lua to Python. So I'm a bit of an odd duck.
But Rust is pretty good. It's tedious at hell to write anything safely, but you can do it and you can have high confidence in the results. (obviously you still need a full test suite)
Re: (Score:1)
Peak programming is Visual C++ 6.0a. It even has it's own test suite, they were called "debuggers". You could even step through code line by line and watch variables!
Wait! What? (Score:2)
But Rust is pretty good. It's tedious at hell to write anything safely, but you can do it
I thought the whole selling point of Rust was that it's damned nigh impossible to write something unsafely. Because if the option is to avoid some tedium, there are developers that will find that way. And then you may as well have gone with C.
Re: (Score:2)
No. It's trivial to write Rust unsafely, just use unsafe.
The selling point of Rust is that it enforces memory safety by default.
Re: (Score:2)
If your code doesn't compile in Rust just wrap it with unsafe { }
Hacking around and doing it the wrong way is much easier than figuring out how to get a complicated data structure through the borrow checker and value** lifetimes.
** I think of Rust values as objects in the general sense.
"we can't make it as good" (Score:2)
Interesting analysis of the quality of MS programmers
Visual Studio support???? (Score:1)
Microsoft might claim its a "Tier 1" language, but that is not really true when the Microsoft "Tier 1" programming IDE doesn't support it.
Bad code can be written in any language (Score:3)
Microsoft will successfully demonstrate that for Rust now.
Tier one? LMAO (Score:1)
But when will Microsoft have a tier one anything else?
of course ms likes rust (Score:2)
What has Rust improved in Office? (Score:2)