Hey Rud. Thanks for reading and your response.
I agree that DRY is still a worthy goal to aim for. I also agree it isn’t concerned with anticipating the future — which is why I wrote this. In my experience, developers tend to use the DRY principle as a reason to try and anticipate the future. I have seen many developers thinking “I don’t want to repeat this later, so I’ll do some re-working so it can be reused later”. That tends to create complexity.
I agree good refactoring tools are needed as well and I use them frequently. I don’t feel like I am blaming tools in any way . Hopefully we can agree that refactoring a poorly written abstraction isn’t as simple as renaming a function though.