| ▲ | antonmks 5 hours ago | |||||||||||||||||||||||||||||||
GitHub Copilot is now written entirely in Rust, with AI agents doing most of the porting work. The migration cost about $120,000 in AI token usage plus about three weeks of a developer's time. The effort updated the runtime module-by-module until the job was completed, spanning over 135 releases across a 14.5-week time period. 430,000 lines of TypeScript were converted into 800,000 lines of Rust. | ||||||||||||||||||||||||||||||||
| ▲ | Shank 5 hours ago | parent | next [-] | |||||||||||||||||||||||||||||||
Porting a system to rust without changing the observable behavior is not that difficult with AI, and porting to a more strict language is not that remarkable. I have a tough time understanding why people equate straight shot porting where a test suite already functionally documents the behavior or where the prior application can be used as an oracle with success in all coding tasks. I would be far more impressed if someone did a clean room implementation of all of GitHub Copilot, from scratch, and got to a better point than the TypeScript or port codebase. I have no doubt that if you provide any AI system with an oracle with expected behavior that it can match that oracle with some amount of $ and tokens. I haven't seen any demonstration of anything else. Rewriting a codebase was always a challenge for humans not because of complexity, but because of the time and effort involved in matching the old version's prior behavior. It doesn't have anything to do with the serious level of work required to build something truly new from scratch in a performant way. | ||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
| ▲ | _fzslm 5 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||
This is true, real, and impressive. However, a comment I posted on HN a couple months ago might counterbalance this fact: GitHub's Copilot cloud agent offering is suffering with a case of some of the worst corporate ADHD I've seen. We built a cloud agentic development pipeline on it, and it seems like almost every other week they silently change something with zero public announcement or documentation that creates real disruption for our team. That's real, breaking changes to the platform that clearly aren't being tested/reviewed before being pushed to prod. Again with zero public announcement or documentation. Support is useless – we're paying customers in the 4-5 figures and our tickets go unanswered. | ||||||||||||||||||||||||||||||||
| ▲ | OtherShrezzing 5 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||
$120k to port 430,000 loc seems quite expensive. That's dozens of cents per line of code, and equivalent to the all-in cost of a senior engineer in London for a year. Especially expensive when you take into account the amount of that code which must have been boilerplate & meta-code in nature, meaning it should have been straightforward to move. | ||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
| ▲ | spaqin 5 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||
Impressive numbers for a piece of software no one asked for and doesn't make the experience better. | ||||||||||||||||||||||||||||||||
| ▲ | wannabe44 5 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||
File by file porting can be done almost always with local reasoning. I don't think it proves much for novel projects which still seems to crumble under complexity past a small sloc limit. | ||||||||||||||||||||||||||||||||
| ▲ | flohofwoe 5 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||
...and what's your point? Github isn't exactly a beacon of performance or robustness in recent months... | ||||||||||||||||||||||||||||||||
| ▲ | zxor 3 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||
That is very cool, but Copilot is hot garbage. So I'm not sure I would cite anything they're doing as a win for LLM coding. | ||||||||||||||||||||||||||||||||
| ▲ | verdverm 5 hours ago | parent | prev [-] | |||||||||||||||||||||||||||||||
sounds like 2x the code that no one understands, one more reason to never consider using copilot again would be curious to know how many times "unsafe" appears in there, have seen rust devs comment on how the ais like to use unsafe to work around difficulties with memory management, like how they will sometimes subvert tests | ||||||||||||||||||||||||||||||||