← Back to context

Comment by darth_avocado

5 days ago

Very rarely have I heard an engineer look at a functioning piece of software and go “let me rewrite this because it’s not a language or framework I am familiar with and fond of”. If that does happen, it’s usually inexperienced (or bad) engineers.

Rewrites usually start with a gap in what is available and what is needed: missing functionality, existing frameworks getting obsolete, difficultly maintaining code because of the existing implementation complexity, costs, scalability issues, compliance challenges, etc. Most of these things serve the business more than the engineers.

The big exception to this I've seen: The functioning bit of software was written in an oddball language that was already niche decades ago and the pool of developers who are competent to work on such a codebase is exceedingly small.

  • Yep - I was at a company that replaced something super obscure - I suspect the number of people in Australia that knew the tech was like 10 to 20. The tech was so obscure I don't think there was any path out other than a full rewrite.

    A company I worked at decided to rewrite a Fortran system - I suspect that if they wanted to avoid a rewrite they could have started breaking bits off into C and mixing the languages at the linking step... but I understand their desire for a clean break - a rewrite was going to take years but a migration would have taken even longer and been even harder due to the lack of Fortran developers.

> let me rewrite this because it’s not a language or framework I am familiar with and fond of

I've been there at least once before and boy was that painful - I already have problems to deal with without someone from another team white-anting us with his ideas (that he doesn't need to maintain).

> If that does happen, it’s usually inexperienced (or bad) engineers.

I agree with you. And that is where I was at that time. I did not have enough experience as a Software Engineer, nor with CakePHP — hence decided to rewrite. Mistakes were made.