For the last couple of years, I’ve been dabbling with a few side/hobby projects. Several of these have been in the form of a Single Page App (SPA). There is a lot of appeal to that with the modern web. The question always comes up, though, which framework should I use to create my new app?
There are many choices: EmberJS, VueJS, React and Angular, just to name a few. I apologize if I missed your favorite framework in that list, these are just the ones that I’ve looked at and could think of off the top of my head. These are all obviously Javascript frameworks, as that’s really the only thing available right now for the client side of things. If you aren’t comfortable with that, then I suggest you go the traditional route of PHP, Ruby, or Python for your frontend development. There are great frameworks available for each of these environments also.
Choosing a framework is a lot like choosing a place to live. You’re going to be spending a lot of time there, and there will be aspects you like, and things you’d like to change, but can’t always. It’s beneficial to be thoughtful, but when all is said and done, you’re not really going to know how much you like it or how well it works for you until you spend some time there.
I’ve come to a simple conclusion on which framework to choose on this as well. Choose the one that you’re most comfortable with and that makes the most sense to you. It’s mostly a matter of taste. Each of the frameworks I listed are all in active development and have strong communities surrounding them. They all have their pros and cons, and those pros and cons will change depending on who you ask. You will never, I repeat, never get a definitive answer as to which one is “better”.
So, you should try them each out, look at their example programs, try running one, search for a few things that you’re trying to accomplish and see if there are any examples out there, and pick the one that makes the most sense for you and your project. If you are part of a team that is starting a new project, see what experience the others in your team have with any of them. If you’re a solo developer, then just pick one and immerse yourself into it.
Myself? I only wish I had started with one of these for my latest large project, it would be much easier now than trying to migrate it from a server side solution. At the time, however, it made more sense to just go with something I could get to minimum viable product with quickly. Now that it’s there, I’m going to be migrating to VueJS.
My reason for choosing VueJS is two-fold. First, VueJS makes a lot of sense to me with how it handles components and reactivity. Second, I’m also creating a mobile app for it, so I can re-use a lot of the code between NativeScript Vue on the mobile side and VueJS on the web side. It really came down to personal taste, though.