Sure, a Rust implementation will perform better and use less RAM, but it's quite obvious that the transition to Rust will be done almost entirely by AI.
Don't get me wrong, the AI coded Rust version of Discord will most likely work just fine. The thing I'm wondering about is if it's a good idea to rewrite your whole codebase (which I assume is handwritten since Discord predates AI coding) with AI because now there is nobody that knows how it really works - I'm wondering what's the value of having a human-written codebase + the people who wrote it. Just feels like one shouldn't throw that into the trash like it's nothing?
[–] spunker540 2 days ago
If a model can tell you anything you’d hope to have a human tell you, what’s the difference? It’s a different point of failure— models can go offline, but employees can also quit anytime too.
[–] mahart 2 days ago
[–] superxpro12 1 day ago
the native app wins every single time. Give me native or give me death!
[–] port11 2 days ago
[–] petra 2 days ago
[–] j_w 2 days ago
[–] lukax 2 days ago
[–] tlonny 2 days ago
Consequently, porting my game engine from Java to Rust was more challenging than I had anticipated.
[–] kombookcha 2 days ago
[–] stackbutterflow 2 days ago
[–] theLiminator 2 days ago
[–] robswc 2 days ago
Because most AI generated code is incredibly verbose and noisy. This can be true for any codebase, but it is especially egregious in AI codebases. It is hard to prevent that by just saying "be concise" because knowing exactly where to be concise is the measure of true skill/intelligence.
Every time I have success with AI coding, it is because whatever I need done can work as a pure function, where the probability I have to return to it is very very low.
Making sense of a codebase is like putting together a puzzle. A purely AI generated codebase is like trying to put it together without a picture on the pieces.
[–] port11 2 days ago
[–] throwaway_new_1 2 days ago
I think if people change their mind in six months, let alone 3 years, they would just rewrite it again with something different, or just double down on the AI rewrite to rewrite the rewrite to fix the gaps and so on. It's a rabbit hole.
What people are completely missing with AI is that when a company/someone makes the decision (which is most these days) to go heavily on the AI route, they are probably going to keep going that way.
We don't really know what’s the right balance of AI and People right now.
My personal take would be to leverage AI to fix and improve what already exists in a maintainable way and wait for others to experiment with going heavily AI. It's worked great for Apple who is generally years behind in a lot of things because they wait it out for others to experiment with things.
[–] beardbandit 1 day ago
Things ship and change way too fast and the changes are massive.
[–] SoftTalker 2 days ago
[–] moralestapia 2 days ago
[–] kombookcha 2 days ago
[–] moralestapia 2 days ago
[–] CamperBob2 2 days ago
You won't want it back. How much time do you spend surfing through your .o or .obj files today?
[–] fao_ 2 days ago
But there are still libraries where familiarising yourself with the header is important, for example stb's libraries. man(1) and GNU Info were both invented to be computer-stored reference manuals, and indeed to this day you can type `man 3p open` to get the POSIX documentation of the system up in front of you.
I am not aware of many codebases that have manuals as complete as this, but back in the day (1970s-era to the 1990s-era) there would be internal documentation written as par of course for the specification created by the waterfall model of development. Post-2010 companies are very lackadaisical about documenting internal interfaces and libraries because they come from startup cultures where "move fast and break things" is the name of the game.
[–] dieortin 2 days ago
Those are not the source of truth for the application logic. But the higher level code is.
The application code describes the behavior of the program and the compiler translates it into a different representation following a set of known, deterministic rules. This is unlike an LLM producing code from a prompt, which is why the source code is still the source of truth, and not a bunch of prompts.
[–] CamperBob2 1 day ago
The solution, as usual in engineering, is negative feedback. Unfortunately, many people around here think that means "Shoot the messenger."