• onlinepersona@programming.dev
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    5 hours ago

    I remember reading a post from an intern there about why they switched to using a browser for the start bar and windows settings UI: the code was just layers upon layers of friction requiring conversion from C++ to some intermediate format into another one and back. Making a simple change would take days if not weeks.

    Ad now that they want to rewrite millions of lines of C++ into Rust using AI to rewrite all of winblows in Rust, it’s going to get much worse.

    • definitemaybe@lemmy.ca
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 hour ago

      I’d be very, very nervous about using AI for a project that big.

      One of the biggest issues with AI, when it “works”, is that it’s incredibly hard to catch its errors. We have layers of cognitive biases around content that appears “written well” is most likely authoritative.

      That means LLMs sound very authoritative, since correct structure is something LLMs are very good at. LLMs can write text that uses advanced vocabulary and complex sentence structure correctly. Similarly, it can write well laid out code with detailed comments and include an explanation for how and why the code works.

      It all looks really convincing. It takes significant attention and effort to critically analyze LLM output to notice the errors it makes, and it’s very easy to forget that the LLM is categorically incapable of understanding your prompt or its output—LLMs don’t understand anything! They’re just advanced word (token) prediction machines.

      So, on a project the scale of refactoring the entire Windows codebase, with pressures to do the work quickly, the results are very predictable. They are going to introduce a lot of errors. And end up with incompatible spaghetti code that’s incredibly inefficient.

      (Somewhat technical example: Anyone who’s studied algorithms/computer science knows how easy it is to write functional code that scale terribly because of missing a small logical step that makes one factor of code operate in linear time instead of logarithmic time. Multiply that by a few other factors in the same function and your code balloons from n or log(n) time to n² or even n³ time.)

      We’re witnessing the beginning of the end of Microsoft as an OS company.