At some point, given the frontend-heavy nature of web apps these days, you’re going to have to write JS, so: why not write everything in JS? It’s well-supported, as a mature ecosystem. You won’t be disappointed.
Benchmarks ain’t shit. More than likely, your bottlenecks are going to come from having 100k DOM elements on the page that are all trying to update at the same time, and no one framework or solution will save you in that case. That said, I’d recommend either React or Vue. React is more mature, Vue is more pleasant to work with IMHO.
Evaluating frameworks and libraries is capital-H Hard, but I go by:
- Number of downloads per week on NPM (or whichever package registry your language uses)
- Last date/time updated
- Stars on Github
In that order. Usage is king, and an up-to-date library is critical.
Some of the questions you ask are really heavy questions, questions that can’t be answered with a pithy quote or what have you, which means I can’t help you except to suggest: read “Clean Code” by Robert C. Martin. That book is the opposite of the dry technical manuals, instead opting for highly practical advice on how to go about writing, testing, and refactoring code.
As for the stack I’d choose:
- Either Express or Koa
- lots of Express/Koa middleware
- MongoDB (in combination with Mongoose)
- Redux (if needed – it’s like glasses, you’ll know when you need it)
- many, many NPM modules depending on what sort of app you’re building
I could go on, but those are the main points. Feel free to ping me if this didn’t convince you.
P.S. I know you didn’t want to hear it, but: Java’s fucking evil, man. Don’t use Java unless you have to for institutional reasons, or other nonsense.