Comment by maxloh

2 days ago

For instance, the TypeScript rewrite in Go was done mostly by humans and took a year before it was released. That is how you rewrite software that people can trust.

> mostly by humans

`mostly` is doing a lot lifting here. The Go rewrite uses plenty of copilot. The reason you trust it is because you trust the people doing the rewrite.

Many projects that were done by humans and took a year can certainly not be trusted.

AI is a great use for this kind of boring, rote translation where precision is important. Humans are quite bad at it and tend to make mistakes. In either case the focus should be on improving testing, not trying to manually verify if the translation was correct by eye.

  • I have an issue with the precision of generated code.

    LLMs sometimes confidently leave things out or they will overbuild.

    I use them all the time but mistakes happen. It's not exactly a scalpel, more like a sledge hammer.

  • With programs large enough tests aren't going to ever be enough. Formal verification might work, but then who checks the specification for bugs?

    • I really wonder where all of these people who believe that tests perfectly encapsulate the behaviour of software come from. Maybe it's because LLMs happen to work better when you give them acceptance criteria and people struggle to distinguish between "better" and "good"?

      2 replies →

  • If precision is important then non deterministic AI is simply not a good tool.