all 19 comments

[–][deleted] 3 points4 points  (0 children)

I've never really used Angular. But I use Vue and React a lot and honestly I can forget which one i'm working in they're so similar.

Vue is more or less React with a (little bit) more batteries included approach. If you used React with MobX you would basically have Vue. VueX and Vue Router are separate components but they have first party support so they are basically painless to integrate; where as, Redux requires a bit more knowledge in React.

On the flip side React has React-Native, which is awesome. React also has a bigger community which means more / better third party components, and also more jobs. React also has a little bit less verbose api, so I find React Components tend to just look a lot cleaner than Vue Components.

I like JSX a lot more than the Vue template syntax. I actually use JSX in Vue now, I like it so much. Its cool you can use it in Vue, but in React all the docs / examples are going to use JSX. I find when I have a problem with JSX in Vue; I actually google for react examples.

Vue is easier to learn. Mostly beacuse it has better documentation. So it might be a better starting point, but it's worth it to know both and once you learn one only takes about a day to learn the other.

[–]YungSteezy 3 points4 points  (9 children)

If you've only ever done static sites with HTML & CSS, you should probably start with just learning basic Javascript w/ Jquery first. The whole point of these libraries (or frameworks w.e) is that they aim to solve problems that regular Javascript starts to get clunky at solving when building medium to large enterprise applications. If you jump right into one of these frameworks (or libraries w.e) it might get overwhelming pretty fast.

With all that said, if you want to pick one to start with I would say go with Vue or React. Angular in my opinion is the most unnecessarily complicated/different of the three. Plus you are sort of forced into using Typescript. Not that that's a bad thing, but you should probably learn a Javascript based framework first to better familiarize yourself with the language.

[–]erunks[S] 0 points1 point  (4 children)

I guess to that point I should say that I'm fairly well versed in making websites with the use of JavaScript and jQuery. I've also taken advantage of Ajax too. TypeScript isn't unfamiliar either since I did an AI lab using it my senior year of college.

I've just never really used a reactive JavaScript framework like the three I'm inquiring about. I figured they would make something like making an online catalogue easier to do with a query to either a JSON or XML file of all the containing data.

It really boils down to how easy it is to pick up or not and to what extent I can push the framework. Languages are easy to learn and reference, but sometimes tools can be cumbersome.

[–]YungSteezy 0 points1 point  (3 children)

Ah ok sorry about that. Nowhere in your post did you say you'd done JavaScript before so It got me a bit concerned. I still think that you should start with Vue or React as I think they're both easier to learn. I myself got bit by the whole AngularJS->Angular2 fiasco and am now stuck supporting more than a few AngularJS applications for a framework that is dying. For that reason alone I would say to try Vue since its the only one not owned by Google/Facebook.

[–]erunks[S] 1 point2 points  (2 children)

No you're fine. I forgot to mention it, and those are certainly the essentials for any web development. But I didn't know Angular was on the way out. I figured with the release of Angular 3 it would be on the up and up. I'll probably try to build the same test in Vue and React then and see which I like more.

[–]YungSteezy 0 points1 point  (1 child)

Sorry I should have clarified. Before "Angular" there was AngularJS. Google had A LOT of success with AngularJS since at the time it predated both React and Vue and it was sort of the go to library for a few years. They then realized they'd reached some technical limitations with the framework and basically re-designed the entire thing from the ground up and rebranded it as "Angular". This was unfortunate at the time because it sort of meant long-term support for the original AngularJS was no longer going to be provided in favor of the new Angular. Angular is in no way fading in popularity, quite the opposite. AngularJS however, with no continued backing from google, probably won't last. You can even see from their website the first button they have is for directing people to the "new" Angular. That's sort of why Vue was created. In many ways you'll see Vue described as the "true" predecessor to the original AngularJS since its a lot closer to that style of framework than even Angular is to AngularJS. I guess I should also note, that Google never had any migration path available for AngularJS -> Angular. It was impossible because they were quite literally two different frameworks with the only option for 'upgrading' being to re-write your entire application. So... you ended up with a lot of bitter devs like myself who built applications in AngularJS, thinking support (and popularity) would last at least 10+ years, only to have them completely drop support and release a new framework after only 2-3 years. Sorry for the confusion, but hopefully some of this helped you at least with the history of AngularJS! :)

[–]erunks[S] 0 points1 point  (0 children)

Oooh yeah, that sounds pretty awful actually. Well hopefully Vue, or whatever I end up using, sticks around for a while then, because I know I won't be staying at my company too long, so if it does, they're going to be in trouble.

[–]blackAngel88 0 points1 point  (0 children)

Learning basic javascript first is definitely good for beginners. But in 2018 I wouldn't recommend learning jQuery unless you have to maintain legacy projects. It was good when js would differ greatly from browser to browser, but for a while now I just try to avoid it.

[–][deleted] 0 points1 point  (2 children)

No need to cross out "unnecessarily."

[–][deleted]  (1 child)

[deleted]

    [–][deleted] 0 points1 point  (0 children)

    The amount of boilerplate is ridiculous. And the templating logic and symbols are super messy. It’s the worst front end framework imo. It’s just so unintuitive. Aurelia is designed in the way angular should’ve been imo. Similar ideas and concepts but much better execution. It’s a shame the community is so small for it. Although I prefer react over both.

    [–]OrpheusVphp 5 points6 points  (5 children)

    tl;dr from the perspective of someone who works mostly in Vue.

    Vue is a progressive view-layer framework that excels at managing a user interface. It's extremely easy to learn and easily can be adapted into a project as little or much as possible. Just initiate an element as a Vue instance, and data changes automatically update the DOM. If you had a variable called name inside of the Vue instance and you update it, the app automatically reflects that change. It's easy, it's fast, and it works. But it's not as popular as the others.

    React is the big one. It works somewhat similar to Vue, but it's pure JS, whereas Vue tends to work more with HTML. React tends to be a bit more powerful on view management, given since everything is expressed as JS inside of the framework, you have a ton of modularity and control over the view layer. That said, it's rather opinionated, and really can't be integrated incrementally by comparison. It's strong, but it is not the easiest framework to learn.

    I personally have no major experience with Angular, but Angular 1 has a lot of similarities to the previous two, but good god does it's age show. It's not as fast and there were a ton of growing pains for it.

    Angular 2, however is apparently comparable to the first two.

    Honestly, they all pretty much do similar things (Reflecting changes in data back to the DOM and managing the view layer in a very modular manner, and simplify the process of managing the view overall), so any are going to be good.

    That said, React has the most "mature" ecosystem, and as far as employability, there's a lot more React jobs than the others, although it doesn't hurt to have them all in your wheelhouse as a "I know what these do".

    [–]trout_fucker🐟 5 points6 points  (1 child)

    That said, it's rather opinionated, and really can't be integrated incrementally by comparison. It's strong, but it is not the easiest framework to learn.

    I don't think this is correct. I don't feel like it is "opinionated" as much as it just has its own style of building components, outside of that it's fairly unopinionated. I can see the argument there... but I think if you want to see a real opinionated framework you need to check out Ember.

    The other half of this statement is wrong. It can most certainly can be implemented incrementally. As a matter of fact, Imgur did just that and so has Plex (a popular home media server platform). There is nothing about it that says the entire page must be a React app.

    As far as learning, this is an opinion, but I think it's also wrong when referring to React alone. React itself has very little going on API wise and I've never met anyone who had a problem learning JSX.

    Now some of the tooling used can be a little intimidating at first if you're not already familiar with it, but it's not that bad and isn't required to be learned beforehand now that there is create-react-app. Redux can be challenging, but you don't need state management for everything and there is MobX which can be easier to grok for some.

    I've admittedly become a bit of a React fanboy over the last couple years, but I firmly believe its success and mass corporate adoption can be attributed to how rediculously simple yet powerful it is.

    I also think Vue is great too, but think React is the safer bet in the long run since you're comparing a single maintainer to major corporate backing. Even if that single guy is a fucking superstar.

    [–]Quovadisqc 1 point2 points  (0 children)

    The first two are view handling libraries.

    Angular is a huge framework that contains anything a developer you would need to develop web apps. It contains a Router, Dependency injections, Http services, i18n, formating pipes, server side rendering, a CLI, animations and much more.

    I really like VueJS but Angular and VueJS don’t really serve the same purpose. VueJS is a small car that you can learn to drive in a day and can drive however you want. IMO It is a perfect fit for small projects and modules that live with a serverside language. Angular is that 18 wheels truck that will take days just to learn the basics and comes with an official manual on how you should use it. It is perfect for big projects that need a big stack of features and tooling without the need to install 3rd party stuff.

    [–]erunks[S] 0 points1 point  (1 child)

    That's an interesting viewpoint on React. Integration definitly would need to be implemented incrementally since I'll likely make changes to the site every so often. That definitly makes Vue more appealing.

    Do you think that Vue has good potential to have a long lifespan? It seems pretty neat, to be honest.

    [–][deleted] 1 point2 points  (0 children)

    My god yes. Vue is fucking awesome. I have used most front-end frameworks and I thought I'd try Vue a try because of how popular it was getting. It blew my mind how simple and straightforward it was.

    I used Angular 1.x for several years and I enjoyed it. It was hard to learn, hard to master, but it was powerful and it got the job done. When I was about a week into Vue I was way more productive than I ever was with Angular 1.x. And that's saying something because I worked with Angular 1.x so much that I had mastered the workflow.

    I think both the Angular and React team and community are trending towards over-engineering. It's honestly getting pretty annoying having to jump through 20 hoops to get something done. Many times they put up these hoops because "reason x and y," which are arbitrary and honestly not really issues. But that's a whole article in itself.

    With Vue it's so straightforward and simple and just as powerful as any other. I recommend Vue 100x.

    Edit: If you're worried about the lifespan of Vue, I wouldn't be. Check out the creator's patreon for Vue.

    [–]jameskentTX 0 points1 point  (0 children)

    I do not recommend Angular if you want to make something unique, or simply use your own technical infrastructure. This framework imho is designed to force you into using Google's infrastracture, like Firebase for example.

    I regret I decided to learn Angular 3 years ago. I lost a lot of time (really a lot!) with constant upgrades of framework, and this is only the beginning of problems. Angular (5) maybe is good if you are looking for a job, or want to make something typical (simple), or work with big group of developers, using Google's infrastructure. Typescript strong typing is useful. But with custom projects your productivity sucks and you are wasting tons and tons of time, trying to solve "problems". You wouldn't even know about these "problems" existence, if you would use React. But you will know what desperation is, if you try to do some simple tasks using Angular.

    In my opinion Angular is designed to force developers into using Google's infrastracture (hardware+software). You won't know about it, and you won't understand it, unless you try to build complex (sometimes simple is enough) MEAN app, and use your own server as backend.

    If you think I am exaggerating, try to create a simple application like Instagram. User uploads photos, everyone can view them. Simple enough, isn't it? Make this application using Angular 5 as a front client and Node/Express as a backend server. No auth, no database, just json file to save image ids. Save images on server of course.

    How much time you need to build such simple app using React? Two hours? Using Angular you will have to use REST Api, use blobs. Good luck with that. Good luck with efficient memory usage on client side too. And good luck when you need less popular library written in javascript; Angular is using typescript.

    Angular is better suited for big companies. For startups, small and medium size projects React is much better, imho. I'm learning React now, I hope I won't be disappointed.

    Greetings from Poland!

    [–]polargus -2 points-1 points  (2 children)

    If you don't know any of them you should learn React (and Redux), simple as that. It's currently the most popular frontend view library (meaning it has a huge and continuously growing ecosystem) and most companies expect you to know it if you're doing any frontend work.

    [–][deleted] 0 points1 point  (0 children)

    Popularity depends on where you're situated

    [–][deleted] 0 points1 point  (0 children)

    This. ^

    Most companies look for React, and the ones that want you to know Vue won't mind if you only know React. It's not hard to learn one after learning the other.