How is it wild? On social media I kept seeing things like people falsely expecting the end goal would require manually reading through a million lines of code. It seemed more like people making up reasons to be mad or trying to dunk on the author.
LLMs generate lots of security issues and bugs. Just being "Rust" doesn't automatically fix that. Generating that amount of code means no human review. How could this not end in obvious disaster?
So AI is based on the insecure and buggy human code, but on top of that it can't think for itself? Definitely, in 2025.... 2027 it will be, coding, for us all.
What makes you think any existing recent code added to Windows has been reviewed by anyone? This is the company that broke the start menu and the login screen in two consecutive updates.
They do still review code, but the first wave of layoffs in 2022 mainly hit principal engineers and above because some bean counters said "oh, these are the engineers that are costing us the most per head", so it's kind of the inmates running the asylum now.
And I'll say that their biggest sin was always that their code from the late 90s on was about 20% too clever for their own good. Kind of goes to that classic quip about how how it takes twice your brain power to debug code as it takes to write it, so if you were already maxing out just writing it, then you're not smart enough to debug it. That's half of why features seemed to get a 1.0 release, then get replaced with something rather than iteratively improved (the other half being FAANG style internal incentive structures).
Were all seeing the effects of them clearing house of their weaponized autism that was barely keeping the wheels on the wagon. They do review, but they don't have the ability to do it properly at scale anymore. Which makes rewriting everything even more batshit.
You’re right about the impossibility of reviewing for style, clarity, and coherence. For correctness though, Windows is famous for being insistent on backwards compatibility over timespans measured in decades and that must surely be automated to the hilt.
As a third-party developer in the late 2000s I remember my boss giving me a CDROM binder (binders?) of every single OS release that Microsoft had ever put out. I assume he’d been given it my his developer-relations rep at Microsoft. My team and I used it to ensure our code worked on every MSDOS/Win* platform we cared to target.
I expect that, internally, the Windows team have crazy amounts of resources to implement the most comprehensive regression testing suite ever created. To that extent, at least, you’d be able to tell if the Rust version did what the old code did even if you didn’t read the code itself.
> For correctness though, Windows is famous for being insistent on backwards compatibility over timespans measured in decades and that must surely be automated to the hilt.
That hasn't been nearly the same goal for decades now.
For instance, Crysis literally won't run on win10 or later anymore.
On top of that, security bugs aren't the kind of thing you can automate away during a rewrite that no one has the bandwidth to actually review.
With this mindset I feel like you would also think bumping a C++ compiler toolchain version is impossible due to all the different changes to code generation that could happen. This is already done today and has similar issues where technically all the code can be affected, but it's not reviewed via a process of manually reading every line.
It’s significantly more straight forward to go from a higher level to a lower level representation than it is to go between different high level representations.
That’s not to trivialize what a compiler does, but it’s effectively going from a complex form to its building blocks while maintaining semantics.
Changing high level languages introduces fundamentally different semantics. Both can decompose to the same general building blocks, but you can’t necessarily compose them the same way.
At the simplest example, a compiler backend (the part you’re describing) can’t reason about data access rules. That is the domain of the language’s compiler frontend and a fundamental difference between C++ and Rust that can’t just be directly derived.
A compiler isn't using a statistical model of language more complex than anyone could understand with a lifetime of study to do its translation, adheres to a standard for that translation, and if you're important enough (and Microsoft internal teams are for MSVC), you get heads up on what specifically is changing so you know where to look for issues.
This is "lets put our postgres database on blockchain because I think blockchain is cool" level of crap you see in peak bubble.
There is a C++ standard that everyone writing C++ code follows and newer version are usually compatible with one another regardless of toolchain version. Behavior of the toolchain should not change. Worst case you can use deterministic, reliable tools to automatically detect problematic locations if there really is a behavior change. (compiler warnings/errors for example)
AI code generation is not deterministic and has no guarantee of behavior, thus requires review unless incorrect code is acceptable.
You don't have to use AI code generation to be what is generating the code or you could require some kind of proof of equivalence to verify the code that was generated.
How is it wild? On social media I kept seeing things like people falsely expecting the end goal would require manually reading through a million lines of code. It seemed more like people making up reasons to be mad or trying to dunk on the author.