You've heard it all before. "The old programmer did this and it's crap" or "This person used this tool and it's no good". It's the age old grudge match between the old and the new. And, it doesn't help anyone move forward.
Ultimately, people don't care about the how or why. They want results.
What can be done to help limit this scenario moving forward? Standardization (frameworks, design choices, etc) and common practices help, especially when they are documented. Team members can come and go, the work remains consistent. But, this has been well adopted and this issue still exists.
Let's try a new approach: simplicity!
Developers always should stive to find the least complicated way to deliver. This may limit the "sexy" developers often want to bite their teeth into. However, it's best for the end result.
Consider the following:
The end users are happier because their system likely uses tools other folks leverage for their systems (because they too took the most simple straight-forward route).
There is less institutional knowledge required to contribute to the project. Meaning, if you get hit by a bus, someone else has a chance to pick it up and pitch in. (As an aside, I have seen many developers intentionally make things complex for job security. Tisk tisk.)
So, when you are evaluating different approaches, strive for the one that limits complexity. Pay it forward and be a good steward for the next developer coming down the road.