How do you rewrite C/C++ projects to Rust?

Posted by smokeeaasd 5 days ago

Counter20Comment18OpenOriginal

Comments

Comment by cdud3 8 hours ago

You don't. This days run your C/C++ code through AI and fix the issues it found. That gives you more in shorter time.

Comment by ale 8 hours ago

> Disclaimer: This article was created with the assistance of AI and reviewed by the JetBrains RustRover team

Honestly there should be a filter for these types of articles. I’m not going to bother reading something another person did not even bother writing.

Comment by pizza234 7 hours ago

"AI-assisted" != "AI-written". People who have AI write their articles entirely surely don't mention it at all.

Comment by hn_submit 5 hours ago

Then they should elaborate and define what "A.I.-assisted" actually means. I have no idea to be honest. Could be anything.

Comment by millerm 5 hours ago

I agree. I think it's an escape hatch phrase for people to try to avoid criticism. A.I. tooling is so similar to a highly addictive drug. Users think they can control how much they use, they eventually start using so much, and eventually use the signs as any addict who cannot think for themself any longer. "I can stop using it any time. I'm not addicted. You don't know me!" It's denial at its finest. Nothing worse than somebody be believing that they're an expert at something, and again they know nothing. A.I. Should simply be deemed the Dunning-Kruger drug.

Comment by faangguyindia 7 hours ago

I rewrote my Haskell project in Rust.

memory usage dropped to half, execution speed is now 2x. Cross deployment is easy from silicon man to x64.

There are many low level optimizations available which i can exploit, compile is super fast for my project so development experience is better.

LOC dropped to half of the original.

Rust made life so much easier :)

Comment by hn_submit 5 hours ago

With the advent of A.I. these rewrites should be Full, but the generated code should only be used as a starting point. The code should be refactored so the engineers can take responsibility for maintaining and updating it.

But I'm afraid managers will force engineers to put the generated code straight into production unaltered so they can claim their million dollar bonuses. And when things go South they'll call on those same engineers to fix things yesterday.

Comment by fukaiall 8 hours ago

1. Hop around a few rust communities and fill yourself up with full love of rust and hatred against c/c++.

2. Ignore any technical tradeoffs and considerations but solely lean on your guts and hypes on the Internet.

3. Ask Claude to rewrite the entire codebase to rust. Boom! Now you’re allowed to show off yourself on LinkedIn and HW as a super great rust engineer.

Comment by ivanjermakov 8 hours ago

Remembering times when JetBrains was about carefully crafted Java intellisense. And I don't think demand for such tools is gone.

Comment by zombot 8 hours ago

For Qt apps written in C++ I don't see how that could work yet.

Comment by hn_submit 5 hours ago

Qt Rust interop crate. Idem wxWidgets.

Comment by reinhash 3 hours ago

The topic of rewrites in Rust is a difficult one.

Mostly the reasons are not of technical, but of political nature. I mean no one likes to be told that their language is "not good enough". Or "not safe enough". It is our instinct to defend what we love and have put so much time and effort into. But reality is, that Rust really helps eliminate whole classes of errors, that can happen even to the most experienced C or C++ devs.

Accepting that things will and should be rewritten in Rust - until an even better language comes along - is necessary. That does not mean that Rust needs to replace all code on earth. For sure there are many cases where it should not. But in the times of Fable and GPT 5.6, it becomes even more important to reduce any attack surface as much as possible.

Comment by himata4113 9 hours ago

I've seen someone rewrite a wireguard proxy in rust for performance without realizing that it's just a daemon that interacts with the kernel to setup routing... But hey, at least the key generation is faster!

Comment by imthias404 9 hours ago

Its kinda hard to understand the point somebody's making, when its articulated/made up by AI. Slop.

Comment by pjmlp 8 hours ago

Similar experience to applications written with Claude slop.

Comment by alex_suzuki 8 hours ago

[dead]

Comment by forrestthewoods 9 hours ago

Step 1. Start with a library that is a fat wrapper around a massive C++ library that does all the hard work

Step 2. Rewrite only the wrapper using already written tests.

Step 3. Get internet points because an LLM Rewrote it in Rust!

Comment by ramon156 8 hours ago

To be fair, big refactors like this need to be done gradually. This is obviously the first step.

Next step can be to port it using e.g. tractor tooling and have a bunch of unsafe calls you need to implement. It's a really fun puzzle. The goal is to have no more cpp dependency

Comment by scaredginger 9 hours ago

They didn't need the disclaimer for this to be obvious AI slop

Comment by 9 hours ago

Comment by namjh 9 hours ago

[dead]