There are so-o-o many programming talks and articles starting on the same premise, "We wrote something and over time it got difficult to maintain, so we decided… to rewrite it in another language".
Why are you so sure the problem is the *language* and not you? Could it be that you just suck at engineering? I'd understand if the language was notoriously hard, like C++, or very new, like, say, Elm. But if you do stuff in Java/Python/Go then there's proof out there that those generally work.
@craigmaloney yes, and you lose all the little decisions and bug fixes implicitly incorporated in your old code over time, which honest refactoring would retain, or at least make you think about.
(Cue the classic Joel Spolsky's piece https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/)
@isagalaev True, but you also get the ability to use different methodologies when changing languages. Some projects may work better with a functional paradigm (or at least having the ability to have different functional pieces inter-operate on multiple servers).
I don't fault projects for re-writing if they want to modernize an aging codebase. But yeah, understanding the risks and the underlying reasons for doing a rewrite have to be ever-present in the redesign.
@craigmaloney "you also get the ability to use different methodologies when changing languages." — agreed. But I am watching a video where guys say, effectively, "we replaced a mess of if-else in Go with a functional filters in Clojure", and I want to say, "are you telling me you couldn't write filter functions in Go?"
And I should say love Clojure and don't like Go, but it's just not a good reason to switch.