<i>The question:</i>
If you had to pick a framework for a SPA project, that will eventually be maintained by other developers with wildly varying levels of skill, motivation and language proficiency, which would you choose?<p><i>The reason for this question:</i>
When I started to work at a research facility at my university, I was assigned the maintenance and further development of the human machine interface of one of our robots. The used framework was an outdated version of Polymer, the build chain was brittle, there was little documentation and the previous students who worked on this project were long gone. Some of the code was beautiful, some of it was a huge mess.<p>Me, being inexperienced in WebDev, but interested in the project, started modifying it, up to a point where I hit a roadblock, burnt everything to the ground and started anew. I then got to see the whole cycle repeat itself: I built some stuff, then I was assigned to a different project, a new student took over, hated a lot of my uninformed "design decisions", but managed to implement some stuff, handed it over to the next student, this one implemented some stuff and at a later point I had to take over again. The code was - of course - a huge mess, some of it my own, some of it of others.<p>So... I'm burning it to the ground again. Clean slate and everything, this time we will do it right, right? But of course the nature of the future students who will maintain this project will not be different.
As software always is the answer for human flaws, I'm looking for a framework that hopefully prevents the degradation of the project, or at least slows it down.<p>I guess I'm looking for a framework with the following features:
- Large-ish community, so Google and SO can help
- A rather strict way of doing things
- This way should also be relatively easy to understand
- Using 3rd party libraries like D3, the roslib etc. should not be a huge PITA
- Stable tooling<p>What would HN choose?