Hacker News new | ask | show | jobs
by marginalia_nu 1608 days ago
> I think there's a myth that rewriting software is bad, or at least a symptom of badness, and "reusing" software is ideal.

There's also a weird opposite myth that old software is bad, and urgently needs to be rewritten with newer paradigms.

I'm currently hired to replace a piece of extremely stable '90s software with hundreds of janky eventually consistent microservices because for some reason. That's how software must be written nowadays, and doing it that way makes it better in some unspecified fashion.

It's not at all clear what is broken and what we're trying to improve with this work. But it's top priority.

2 comments

Haha, yes. My first front end job was to rewrite a totally reliable and working software written in an obscure javascript framework, but still, working pretty well, appreciated by the users, and making tons of money for the company.

Well, AngularJS was such a trending thing that we HAD to rewrite everything in it. For no reason. No new feature. Bonus time : i was the only dev on this project (because i was replacing the only front-end dev who was leaving) and i had not a single idea of how AngularJS worked at the time.

No supervision, no prior experience, no business goal. I'm not proud of the result. But at least i learnt a lot of things (including CoffeeScript, i'm sorry for who took the codebase after me).

> There's also a weird opposite myth that old software is bad, and urgently needs to be rewritten with newer paradigms.

Some of the challenges with old software is the ecosystem around it. Is the language it's written in still supported on modern OS? (Visual FoxPro for example). Is the database it's using still around? What about the libraries? Are they tied to a certain runtime version with no update path? Do you even have access to the source code for these dependencies? Or the application itself? Can it build on a recent machine?

I've seen projects where some infrastructure around an old piece of code was re-written to make it run on modern platforms, but that takes good engineering (some assembly required) that companies often simply can't afford.