The maddening thing is that there's a right way to do this if you have the patience and professionalism to do so. It requires building a bit of scaffolding (feature flags, cross-language calling support, harnesses for shadow testing, etc.), then you ship-of-theseus the codebase incrementally. This is not even incompatible with LLM-assistance, plus it breaks the thing up into smaller, reviewable changes that don't break your diff tool!

However, doing it the right way takes a bit more time, involves community feedback, and doesn't produce headlines about huge codebases being rewritten by LLMs in just a few days, so ...

There is never a right way, only trade offs.

The thing about being a Monday morning quarterback is that you can always claim you would have used even more caution and process.

> you can always claim you would have used even more caution and process.

Well, specifically, my claim is that any serious professional in this industry would have done so. But we're essentially in agreement, in the sense that yes, I am allowed to make this claim, and in fact already did, in the comment you are replying to.

EDIT: Actually I've been thinking about this a bit more. The thing about commenting on something that someone did is that you must always comment on it after they did it, otherwise it wasn't "something they did." However, being a "Monday morning quarterback", as I understand it in this context, means "criticism of someone's actions afterwards", so it would appear that I am doing that. I also understand this phrase to have a negative connotation, and I would hate to connote negatively in this otherwise very positive community. Quite a dilemma! Glad I have my life coach LLM to help me sort all this out.

>serious professional in this industry

As a serious professional in the industry - we're dinosaurs. Nobody cares anymore.

The kids are running the show and are making billions with stuff that doesn't work. But it makes money so nobody cares.

This is not a new phenomenon, it started years ago and really took off when JS became the new hotness. You could see it happening live, right here on HN. But the blast radius is massively increased now with AI and people are getting hurt. It's not funny.

The ship has sailed on rigor.

The sad thing is that this is not going to get better. The best we can hope for is slight improvements to agentic "engineering" practice with lots and lots of blog posts on HN written about how they are rediscovering basic engineering practices.

We (the dinosaurs) will roll our eyes while making a fraction of the money the kids are making.

And even if the whole AI ecosystem implodes (it won't) that would be a massive recession and certainly wouldn't make the remaining software engineering work more rigorous either.

As the Simpsons put it: "An I out of touch? No, it's the children who are wrong."

> There is never a right way, only trade offs.

There is a right way, especially when you have a community.

Can you cite a single software project with so many users which did a language migration in a more cavalier way?

I mean, some trade-offs are “something for nothing” which by definition makes them “the wrong way.”

Real life does exist.

Ah yes, you are actually describing fish shell's Rust rewrite. They specifically called it The Fish Of Theseus which is of course a reference to the ship of Theseus.

https://fishshell.com/blog/rustport/

I mean it's definitely at least partially a PR stunt