Disaster Microsoft wants to replace its entire C and C++ codebase, perhaps by 2030 - Moving to Rust with the help of AI, trannies, and Indians

  • 🏰 The Fediverse is up. If you know, you know.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account

Microsoft wants to translate its codebase to Rust, and is hiring people to make it happen.

“My goal is to eliminate every line of C and C++ from Microsoft by 2030,” Microsoft distinguished engineer Galen Hunt wrote in a recent LinkedIn post.

“Our strategy is to combine AI and Algorithms to rewrite Microsoft’s largest codebases,” he added. “Our North Star is ‘1 engineer, 1 month, 1 million lines of code.’”

Hunt’s post mentions a job ad for a Principal Software Engineer who will be expected to work on the tools Microsoft is building to pull this off.


“The purpose of this … role is to help us evolve and augment our infrastructure to enable translating Microsoft’s largest C and C++ systems to Rust,” Hunt wrote.

Microsoft has already built some tools to make the move.

“We’ve built a powerful code processing infrastructure,” Hunt wrote. “Our algorithmic infrastructure creates a scalable graph over source code at scale. Our AI processing infrastructure then enables us to apply AI agents, guided by algorithms, to make code modifications at scale.”

Whoever gets the job will work within Microsoft’s Future of Scalable Software Engineering group, a team Hunt says has a mission to “build capabilities to allow Microsoft and our customers to eliminate technical debt at scale.”

“We pioneer new tools and techniques with internal customers and partners, and then work with other product groups to deploy those capabilities at scale across Microsoft and across the industry,” he wrote.

Unlike C and C++, Rust is a memory-safe language, meaning it uses automated memory management to avoid out-of-bounds reads and writes, and use-after-free errors, as both offer attackers a chance to control devices. In recent years, governments have called for universal adoption of memory-safe languages – and especially Rust – to improve software security.

Microsoft has also called for greater use of Rust. In 2022, the CTO of the company’s Azure cloud called Rust to become the default language for new projects. Microsoft scientists have worked on a tool that automatically converts some C code to Rust.

The software behemoth has also created tools to help developers write Windows drivers using Rust.

Microsoft offers a vast array of products. The site MSportals.io lists over 500 active online portals for managing Microsoft products! The company also has a huge internal IT estate.

The effort required to re-write all that must surely be beyond enormous. It will doubtless surface huge numbers of edge cases that automation can’t address.

If you’re brave enough to want to make a contribution, the job Hunt mentions requires you to work three days a week in Microsoft’s Redmond office and pays between $139,900 and $274,800 a year. ®


The linkedin post being referred to here:

Microsoft wants to translate its codebase to Rust, and is hiring people to make it happen.

“My goal is to eliminate every line of C and C++ from Microsoft by 2030,” Microsoft distinguished engineer Galen Hunt wrote in a recent LinkedIn post.

“Our strategy is to combine AI and Algorithms to rewrite Microsoft’s largest codebases,” he added. “Our North Star is ‘1 engineer, 1 month, 1 million lines of code.’”

Hunt’s post mentions a job ad for a Principal Software Engineer who will be expected to work on the tools Microsoft is building to pull this off.


“The purpose of this … role is to help us evolve and augment our infrastructure to enable translating Microsoft’s largest C and C++ systems to Rust,” Hunt wrote.

Microsoft has already built some tools to make the move.

“We’ve built a powerful code processing infrastructure,” Hunt wrote. “Our algorithmic infrastructure creates a scalable graph over source code at scale. Our AI processing infrastructure then enables us to apply AI agents, guided by algorithms, to make code modifications at scale.”

Whoever gets the job will work within Microsoft’s Future of Scalable Software Engineering group, a team Hunt says has a mission to “build capabilities to allow Microsoft and our customers to eliminate technical debt at scale.”

“We pioneer new tools and techniques with internal customers and partners, and then work with other product groups to deploy those capabilities at scale across Microsoft and across the industry,” he wrote.

Unlike C and C++, Rust is a memory-safe language, meaning it uses automated memory management to avoid out-of-bounds reads and writes, and use-after-free errors, as both offer attackers a chance to control devices. In recent years, governments have called for universal adoption of memory-safe languages – and especially Rust – to improve software security.

Microsoft has also called for greater use of Rust. In 2022, the CTO of the company’s Azure cloud called Rust to become the default language for new projects. Microsoft scientists have worked on a tool that automatically converts some C code to Rust.

The software behemoth has also created tools to help developers write Windows drivers using Rust.

Microsoft offers a vast array of products. The site MSportals.io lists over 500 active online portals for managing Microsoft products! The company also has a huge internal IT estate.

The effort required to re-write all that must surely be beyond enormous. It will doubtless surface huge numbers of edge cases that automation can’t address.

If you’re brave enough to want to make a contribution, the job Hunt mentions requires you to work three days a week in Microsoft’s Redmond office and pays between $139,900 and $274,800 a year. ®

The linkedin post being referred to here:


Update:
It appears my post generated far more attention than I intended... with a lot of speculative reading between the lines.

Just to clarify... Windows is *NOT* being rewritten in Rust with AI.

My team’s project is a research project. We are building tech to make migration from language to language possible. The intent of my post was to find like-minded engineers to join us on the next stage of this multi-year endeavor—not to set a new strategy for Windows 11+ or to imply that Rust is an endpoint.

Original Post:
I have an open position in my team for a IC5 Principal Software Engineer. The position is in-person in Redmond.

My goal is to eliminate every line of C and C++ from Microsoft by 2030. Our strategy is to combine AI *and* Algorithms to rewrite Microsoft’s largest codebases. Our North Star is “1 engineer, 1 month, 1 million lines of code”. To accomplish this previously unimaginable task, we’ve built a powerful code processing infrastructure. Our algorithmic infrastructure creates a scalable graph over source code at scale. Our AI processing infrastructure then enables us to apply AI agents, guided by algorithms, to make code modifications at scale. The core of this infrastructure is already operating at scale on problems such as code understanding.

The purpose of this Principal Software Engineer role is to help us evolve and augment our infrastructure to enable translating Microsoft’s largest C and C++ systems to Rust. A critical requirement for this role is experience building production quality systems-level code in Rust—preferably at least 3 years of experience writing systems-level code in Rust. Compiler, database, or OS implementation experience is highly desired. While compiler implementation experience is not required to apply, the willingness to acquire that experience in our team is required.

Our team is driven by a growth mindset. We are diverse team with a wide range of skills and perspectives. We take on bold risks. We work and play well with others. We love to bring value to internal and external customers. We have learned that our diversity and growth mindset is critical to success in the rapidly changing word of AI-based tools.

Our team is part of the Future of Scalable Software Engineering group in the EngHorizons organization in Microsoft CoreAI. Our mission is to build capabilities to allow Microsoft and our customers to eliminate technical debt at scale. We pioneer new tools and techniques with internal customers and partners, and then work with other product groups to deploy those capabilities at scale across Microsoft and across the industry.

To apply, or recommend someone, visit the Microsoft Career Hub: https://lnkd.in/gvzvAiJE (Job ID 200013722).
 
Last edited:
Fortunately LibreOffice works just fine with Word and Excel docs (well, mostly except when it comes to certain spreadsheet things that just don't format properly in LibreOffice).
Agree with @Snekposter here. What issues I've had with formatting between Calc and Excel have been very minor. Basic functionality seems to work fine without major issues. YMMV.

I think technically it was a violation of the ToS to be used for business use like that, but nobody reads those anyways, but since he gave LibreOffice some money in donations as thanks I think its fair.
Based on what I could find online at the moment, it's supposedly free for comercial use, but The Document Foundation does not provide professional support services (L/A).

They... they... got rid of file and folder pointers just like that?

Fuck, I probably would be on the verge of eating a bullet if I had accidentally swapped over to it at any point.
What a mess. :cryblood:
 
It sounds good. I’ve heard people in my industry talk about ‘100 day trials’ and it’s just a number that sounds good. It’ll have got out on a PowerPoint and shoved in front of someone with a line that goes up and to the right and some guff about AI and synergistically claiming efficiencies across blah blah to drive blah blah and now it’s a Goal
The fact that you can’t test a drug for safety in 100 days is neither here nor there for these people. The number just sounds good.

The more ignorant someone is, the more arbitrary their deadlines. And their metrics. Fundamentally they have the issue that they're in charge but know less than their underlings. That's an unnatural situation and they know it. Responses vary - trying to keep knowledge from their underlings to preserve the boss's importance, isolating the team from others to prevent bypassing them (a variant on the above), firing employees who become too visibly more competent than they are such as answering questions in meetings, or the ever popular - Arbitrary Decision. Whether that be the 100,000 lines of code metric or the 100 days deadline, nothing make a boss feel more like they've covered their ignorance and more obviously haven't, than the arbitrary deadline.


As to Rust and the insanity of trying to re-write Microsoft in Rust... I've programmed in C and C++ so I have some qualification to speak about this stuff but I've only ever given cursory looks to Rust to get the general feel of it. So I'm not very well qualified. What I can say is this would be a colossal operation taking a very long time and it couldn't take the approach of do it in the background until it's ready then release the Rust version. You would have a mixed code base for a long time. A mixed code base has inherent problems. Everything new you write becomes a question of whether to do it in C++ or Rust (Kernel remains in C, I presume?). Every existing thing you touch becomes a question of whether to use that as an opportunity to rewrite it in Rust or continue writing it in C++ knowing that later that code will be thrown away. So of course there's a pressure to take that opportunity to rewrite it but the reality is that's something which might take a year to rewrite so do you delay the needed new stuff for that long? And then another year after that when it overruns? And you have the problem of expertise. Someone who has been there twenty years and knows a complex part of the codebase inside and out? Well you just devalued their knowledge massively. You're expecting people who've been doing C++ for decades to suddenly retrain in Rust alongside C++. Well, I say that, the managers are expecting to be able to get rid of the old C++ people and use this as an opportunity to hire in new and junior Rust programmers fresh off the Rust conveyor belt. That 20 year C++ guy will be able to retrain in Rust because C++ is complex and you have to be this smart (I'm holding up my hand palm down here) to be one. But they wont have 20 years in Rust. And the HR people will be saying "well this role is a Rust role. That person has one year of Rust and this person has one year of Rust, we'll have the recent graduate please". Is that stupid? Yes. Will they do it? Yes.

Honestly, there are so many problems with this you could go on a long time but much of it has been covered. The biggest issue is probably that the idea is driven by politics and business, not technical merits. They think they can recruit a boatload of fresh young Rust programmers to replace those obstinate and more expensive senior devs who make management feel insecure because they know less.. They think there will be fewer bugs (ah ha ha!). And of course, there's some guy who has blagged his own managers with all these promises and got himself a nice big open ended years long project and budget to look into this.

It's the same on the Linux side where Rust now has Kernel support and there are efforts to rewrite key things in Rust. Based on technical merit...? Ehhhh. Political reasons? Definitely. Case in point, the GNU Core Utils. These are some standard tools on any GNU/Linux system written in C and there is an active effort to rewrite them in Rust. Some people have claimed performance gains will appear but that's nonsense. And in so far as it isn't nonsense, it would come about through the rewrite itself with little to do with a change to Rust. Security or safety? These are some of the most mature and tested components out there. No, the reason is something non technical. The GNU Core Utils are licenced under the GPLv3. The new Rust rewrite is under the MIT licence. The latter lets businesses take the open source code and fuck around with it behind closed doors. GPLv3 does not.

There are other political reasons as well. There's a certain "culture" that comes with the Rust evangelists. And it shouldn't be dismissed. People have been cut out of the Linux Open Source world as "Nazis" and the Rust developer community seems to have a lot of that Progressive wing gate-keeping that comes with it. When they get a code base moved over to Rust, it undermines existing developer communities. You've been doing C++ for thirty years? Get out of here Old Timer. This is a Rust town now. The truth is that experience is valuable in any language, but the projection is that you're doing legacy work and a legacy coder.

One of the real issues in Software Development is that there are different priorities. It used to be that the priority was to be fast as fast as you can whilst being reliable, and as reliable as you can whlist being fast. Now the goal is not to write quick code, but to write code quickly. Hence a lot of inefficient standardisation, libaries and frameworks. They want to be able to plug and play programmers. Systems programming (e.g. OSs like Windows) are the least impacted by the shift in the software world's priorities. Compare with front-end development, web applications, etc. But they're not immune.

I will miss Windows. It was a nice OS for a little while, after Vista.
 
But one of the key things that will make it easier is good robust QA and knowledge of what the code used to do.
Microsoft pretty obviously has neither any longer.
I have some acquaintances who work at Microsoft. According to them, QA was off-shored to India years ago, and it shows. While all departments will suffer when off-shored to India, QA suffers acutely. Your QA department needs to be able to say to a developer, a project manager, a department VP, the CEO or even the board, that the baby is ugly and its shit stinks. QA needs to be able to describe with dispassionate realism why the baby is ugly and its shit stinks, and do so unflinchingly. Even if you've not read the excellent post on izzat in the India Menace thread, if you've spent anytime working in tech, you've observed and intuited that the core function of QA, above, is fundamentally incompatible with the incurious ass-kissing and gaslighting that is woven into Indian culture, even if you couldn't put words to what you saw.

I recall a story that was told to me. Many years ago, a programmer at Microsoft, frustrated that a ticket had come back to him yet again, when he knew he had fixed that bug, went over to the QA department to watch the tester test. It turned out, he had only fixed the bug's manifestation when using the mouse. The tester was using keyboard shortcuts, and because the developer had only worked on the mouse-click code path, he had only papered over the issue. Now enlightened, the developer went back to the code, and after diving a layer or two deeper into the code to find the actual bug, fixed it properly. That bug turned out to be the fundamental issue to a number of seeming unrelated defect reports. In fixing that one bug properly, a ton of work was saved, all because a tester in QA was allowed to say, "No, your shit is still broken."

That is the kind of QA that Microsoft will need now to successfully pull off a Rewrite in Rust effort. And it is the kind of QA that Microsoft does not have and will never have so long as it is infested by jeets.
 
Back
Top Bottom