I'm working on a large'ish open source platform which is meant to be heavily extensible via third-party modules.<p>On the one hand there are a lot of nice prefab JavaScript MV* frameworks out there, of which I have some experience with. If I expected to be the only person, or nearly the only person, writing code for this project I wouldn't hesitate to grab a pre-existing framework.<p>That said, in this particular circumstance I can think of a few potential downsides to choose a prefab framework:<p>1. Trying to keep up with versioning of a prefab framework sounds like a potential nightmare. I want to be able to focus primarily on features for the application/framework itself, and not be a slave to the version of JS framework that lies beneath the surface.<p>2. There is so much fragmentation within the JS framework space that whatever I choose would leave a majority of people unfamiliar with it (and possibly alienated). If I rolled my own for the project everyone would at least be on the same page.<p>3. Something as foundational as a MV* framework demands that you somewhat marry it. You can decouple all you want but swapping from Backbone.js to Angularjs (or vice-versa) is not a small task for anything non-trivial. The codebase for my project is large enough that whatever choices are made, will have to be lived with for some time. I really dislike the idea of marrying my own project's success or failure to any one prefab framework. (e.g., some new hotness comes out tomorrow and perceptually makes what the project uses look like yesterday's garbage - doesn't seem like it would be such an issue if the foundation was custom in the first place)<p>So roll-my-own MVC architecture, or would using a prefab framework within my project be less of hassle than I'm worried about?<p>Thank you in advance for any constructive experience/opinions!
if they solved your problem, use one of them. reinventing things takes much longer time than building something with them. there is already plenty of great frameworks running in the wild. backbone, ember and angular.js have their own great communities. find out which one you like more and then if you think it has some missing features or things done wrong then they are open source. you can always send a PR.