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.
@isagalaev Problem is there's always more will to rewrite something than refactor it. Refactoring requires you to work within the constraints of the code, whereas rewriting tickles the "new frontier" parts of the mind.
@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.
@isagalaev Yeah, it shouldn't be the primary reason. Only reason I can think of for moving from Go to Clojure is either "we love Lisp" or "we're a Java shop and really love Lisp".
@craigmaloney fair enough :-)
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!