So I'm not sure I've really discussed frameworks, specifically my views on them (at least not here), but now's as good a time as ever. When it comes to the back end side of development, at least with PHP, I prefer not to. Of course, this would be different when using something like Python or Ruby that aren't meant to run on the web like PHP does, when it offers neat things that make development significantly easier. But I also like control, full control. So typically, I won't use them unless I absolutely have to. I want my code to have as few assumptions as possible and be as efficient as possible. So sure, Python and Ruby frameworks provide you with neat concepts like templating engines, but PHP doesn't need it. I've actually discussed this in detail before with a breakdown of back-end languages, which you can find here.
This is probably the most well-known one out there, at least of the three. It's been around for awhile, more than 8 years as of this blog, and it's developed AND maintained by one of the largest names in the tech world: Google. Angular covers an insane amount of functionality, especially a popular feature such as two-way data binding. I won't go into too much detail as to what it is, but I'll give you a brief example. If you've ever been to a site where you're typing something into a text box, and what you're typing is also being displayed and updated real-time somewhere else (like changing the site name in a WordPress site), that's two-way data binding. Angular does way more than just this, but I don't want to get too far into all of the fine details. But for all it offers, there's one downside to Angular, and that is the size. Of the three we're going to discuss here, Angular is far and away the largest. This isn't to say that it shouldn't be used, as it is a great tool for developers. But I would recommend against it for smaller, more simple applications. Unless of course you know Angular inside and out, and you're not fond of learning a whole new framework just to build a single application.Currently, Angular is on version 7, which is actually version 1.7, (1.7.2, to be more specific) which is the latest stable release of the framework. If you don't know what those version numbers mean, check out this other post we wrote a few days ago that gives you a break down of how to read and understand version numbers.
So Vue JS is another insanely popular front-end framework, and it's the perfect one to discuss after Angular. See, Vue JS isn't backed by a huge company like Angular has with Google. But in a way, it also kind of does. See, there's this developer named Evan You who worked for Google and used Angular on a number of projects. He liked what it did, but found that it could be cumbersome for smaller applications. So one day, he decided to take the important parts of Angular he really liked, and rework a few things to make a MUCH more lightweight front-end framework. So while still offering features like two-way data binding, it rids itself of some of the lesser used features.But as you would expect from open source software, you'll still be able to get some of these features through things called "plugins", which is very similar, at least in concept, to the way jQuery was used. In fact, I've even ready on forums before where Vue was basically called the next jQuery, though for very different purposes. But it's because of the flexibility that Vue offers that we here at Red Shark Digital have actually started to use Vue JS in some of our upcoming web projects, so be sure to keep an eye out for that. Vue JS is only 4 years old, so it's only been around about half as long as Angular and is currently on version 2.5.16 as of this post.
Honestly, don't overthink it. If you want something basic and easy to learn, go with Vue. It'll get you up and running quickly. If you have a much larger project and you want more power, go for Angular. Want to do a little of everything, go with React. Or don't. All that matters is that you enjoy what you do and don't want to rip your hair out at the end of the day.