I completely agree that there's no perfect framework and I definitely feel the pressure of switching to something new; however, I have been working with Spring since ~May and although I follow best practices to the best of my ability, the offshore team doesn't.
The team leads that I work with in-house don't even understand the application enough to help me along the way, so any help I get is from the offshore folks who've completed the dev work and understand the applications -- which eats up their dev time too. I can't even rely on documentation or comments in the code because almost none of these things exist. So to understand a feature flow, I have to read through copy/pasted code with some Java classes spanning 2000 lines of code that need to be refactored. All while keeping to unrealistic release deadlines (which I'm sure I'll find anywhere else lol).
Some of these problems stem from how our BAs create the user-stories. Our BAs have a tendency to bloat stories and write them in a waterfall-like fashion -- when we're Agile. So the offshore devs take on too much work, point them far below their real size, and write shit code. The code comes back to us, and we have to redo it -- there's nothing good about this. We've tried changing how BAs create stories, etc. but nothing has changed, it really feels like all hope is lost.
Implement code review and start rejecting their pull requests with constructive criticism and mentoring.
The main issue is that I need to be mentored. It's my first full-time job and I shouldn't be the one mentoring anyone unless they're an intern with no knowledge of enterprise software development.
1) There is no perfect language and all of them can do amazing things with the right person (me! and heck you too!) behind them.
2) Sometimes I will be less effective when I am starting in a new or changing environment but half the fun is finding where I can lead and make great changes for the users.
3) Offshoring will exacerbate issues these issues but my ability to make substantial impacts increases exponentially with the amount of offshoring that is going on within an organization. I capitalize on this.
Obviously, if you are just tired of being there and don't want to stay, then leave. Though I would suggest like either that you find a job before you quit your current position. However, if the whole code base needs a good refactoring, by all means, make an impact! Start in a small piece and make a difference. Start to lead.